| @ -0,0 +1,41 @@ | |||||
|  | Fleet Rental Management v11 | ||||
|  | =========================== | ||||
|  | This module will helps you to give the vehicles for Rent. | ||||
|  | 
 | ||||
|  | Features | ||||
|  | ======== | ||||
|  | 
 | ||||
|  | * Multiple Plans for Rental Contract(Days/Weeks/Months/Years). | ||||
|  | * Integrated with Accounting Module. | ||||
|  | * Automatically Create Recurring Invoices. | ||||
|  | * Sending email for confirmation, first payment and recurrent invoices. | ||||
|  | * Check List Facility. | ||||
|  | * Separate Tree view for Checklist. | ||||
|  | * Damage Checking Facility. | ||||
|  | * Billing Facility for Damages/Check Lists. | ||||
|  | * Contract Payment Validations. | ||||
|  | * Detailed Fleet Rental Analysis Report. | ||||
|  | * Access Rights From Multiple Level. | ||||
|  | Tech | ||||
|  | ==== | ||||
|  | * [Python] - Models | ||||
|  | * [XML] - Odoo views | ||||
|  | 
 | ||||
|  | Installation | ||||
|  | ============ | ||||
|  | - www.odoo.com/documentation/11.0/setup/install.html | ||||
|  | - Install our custom addon | ||||
|  | 
 | ||||
|  | Bug Tracker | ||||
|  | =========== | ||||
|  | Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | Developer: Avinash NK @ cybrosys, avinash@cybrosys.in | ||||
|  | 
 | ||||
|  | Maintainer | ||||
|  | ---------- | ||||
|  | 
 | ||||
|  | This module is maintained by Cybrosys Technologies. | ||||
|  | 
 | ||||
|  | For support and more information, please visit https://www.cybrosys.com. | ||||
| @ -0,0 +1,21 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys(<https://www.cybrosys.com>) | ||||
|  | #    you can modify it under the terms of the GNU AGPL (v3), Version 3. | ||||
|  | # | ||||
|  | #    It is forbidden to publish, distribute, sublicense, or sell copies | ||||
|  | #    of the Software or modified copies of the Software. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU AGPL (AGPL v3) for more details. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from . import models | ||||
|  | from . import reports | ||||
| @ -0,0 +1,44 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | ||||
|  | #    you can modify it under the terms of the GNU AGPL (v3), Version 3. | ||||
|  | # | ||||
|  | #    It is forbidden to publish, distribute, sublicense, or sell copies | ||||
|  | #    of the Software or modified copies of the Software. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU AGPL (AGPL v3) for more details. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | { | ||||
|  |     'name': 'Fleet Rental Management', | ||||
|  |     'version': '12.0.1.0.0', | ||||
|  |     'summary': """This module will helps you to give the vehicles for Rent.""", | ||||
|  |     'description': "Module Helps You To Manage Rental Contracts", | ||||
|  |     'category': "Industries", | ||||
|  |     'author': 'Cybrosys Techno Solutions', | ||||
|  |     'company': 'Cybrosys Techno Solutions', | ||||
|  |     'website': "https://www.cybrosys.com", | ||||
|  |     'depends': ['base', 'account', 'fleet', 'mail'], | ||||
|  |     'data': ['security/rental_security.xml', | ||||
|  |              'security/ir.model.access.csv', | ||||
|  |              'views/car_rental_view.xml', | ||||
|  |              'views/checklist_view.xml', | ||||
|  |              'views/car_tools_view.xml', | ||||
|  |              'reports/rental_report.xml', | ||||
|  |              'data/fleet_rental_data.xml', | ||||
|  |              ], | ||||
|  |     'demo': [ | ||||
|  |     ], | ||||
|  |     'images': ['static/description/banner.jpg'], | ||||
|  |     'license': 'AGPL-3', | ||||
|  |     'installable': True, | ||||
|  |     'application': True, | ||||
|  | } | ||||
| @ -0,0 +1,760 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  | 
 | ||||
|  |     <data noupdate="1"> | ||||
|  |         <record model="product.template" id="fleet_service_product"> | ||||
|  |             <field name="name">Fleet Rental Service</field> | ||||
|  |             <field name="type">service</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="fleet.vehicle_state_inshop" model="fleet.vehicle.state"> | ||||
|  |             <field name="name">In shop</field> | ||||
|  |             <field name="sequence">1</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="fleet.vehicle_state_active" model="fleet.vehicle.state"> | ||||
|  |             <field name="name">Active</field> | ||||
|  |             <field name="sequence">2</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="fleet.vehicle_state_inactive" model="fleet.vehicle.state"> | ||||
|  |             <field name="name">Inactive</field> | ||||
|  |             <field name="sequence">3</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="fleet.vehicle_state_sold" model="fleet.vehicle.state"> | ||||
|  |             <field name="name">Sold</field> | ||||
|  |             <field name="sequence">4</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="vehicle_state_rent" model="fleet.vehicle.state"> | ||||
|  |             <field name="name">Rent</field> | ||||
|  |             <field name="sequence">3</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="fleet.fleet_rule_vehicle_visibility_user" model="ir.rule"> | ||||
|  |             <field name="name">User can only see his/her vehicle</field> | ||||
|  |             <field name="model_id" ref="fleet.model_fleet_vehicle"/> | ||||
|  |             <field name="groups" eval="[(4, ref('fleet.fleet_group_user')), (4, ref('rental_group_user'))]"/> | ||||
|  |             <field name="perm_read" eval="True"/> | ||||
|  |             <field name="perm_write" eval="True"/> | ||||
|  |             <field name="perm_create" eval="True"/> | ||||
|  |             <field name="perm_unlink" eval="False"/> | ||||
|  | 	        <field name="domain_force">[]</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="base.main_company" model="res.company"> | ||||
|  |             <field name="logo"> | ||||
|  |                 iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABHNCSVQICAgIfAhkiAAAAF96VFh0 | ||||
|  | UmF3IHByb2ZpbGUgdHlwZSBBUFAxAAAImeNKT81LLcpMVigoyk/LzEnlUgADYxMuE0sTS6NEAwMD | ||||
|  | CwMIMDQwMDYEkkZAtjlUKNEABZiYm6UBoblZspkpiM8FAE+6FWgbLdiMAAAgAElEQVR4nOy9ebQd | ||||
|  | x3kf+Kvq7rvf+1asBEiQBAHuokhKokyQFLiYki3JUiLJSywfy0kc2c4Z2Y493o8zJ1GOk+NJ4jlj | ||||
|  | j8exfEZOvESSY8uxFMtaQIoiAXAVKQIQse/b2++7++2qb/6opav7Lu89EKQewP4OLrq7ul93VXV9 | ||||
|  | 3/f7lqoGUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRS | ||||
|  | SimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkop | ||||
|  | pZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWU | ||||
|  | UkoppZRSSiklh9j3ugIpXRoREXvhhRf8kZERPj09zWu1WmbNmjW3ZzKZO4Ig2Mo538w5X+d53gTn | ||||
|  | vMI5L3iel+WcB5xzHwDnnDMiAikSQohQStkVQrSklHUhxIIQYlpKea7b7Z5otVqvNZvN71Sr1WNj | ||||
|  | Y2PdyclJefr0afGe97xHMMboe90nKa2cUgFwhdCuXbv8XC4X1Gq1TLFY3FAoFB7K5XL3+L5/M+f8 | ||||
|  | 2mw2uyaTyRQ8z7N/wxiLbZP7/YiIevbNVkqJTqeDTqdT63a75zudzrFOp7NvcXFxb6PReN7zvKlS | ||||
|  | qdRptVrdnTt3hpet8Sm9YZQKgFVKRMS/+tWv5oMgyGez2W2VSuUD2Wz23iAItudyuQ1BEPiMMZgf | ||||
|  | sDJGv4T6xPZd4RCGIRqNRrfdbp9st9uv1uv1Z+r1+lc9zzvV7Xabjz32WJMxJi9rhVK6LJQKgFVE | ||||
|  | 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 | ||||
|  | ltDz9jdK6BtVq7ou11t/3IjO2g1xdbvfqa3b9m7riurLtpft836W6zGAuwGF9dR1275eMCh73Km+ | ||||
|  | 2z5dlRs1oMpet1vddyNE/H4DQKe2jfS9lUs3g7Zbu8H7CQDrae+mbT39ui43epBdrwG/UdXhetR1 | ||||
|  | arve4vx/jABQpv96OOj1Ao+N9CnTtpG+6yo3a5DdKCDIq79euvhGxfL/GDl+p3IjJYKyfa637aFT | ||||
|  | fae2jfTdULnZg+56EsT1JOaNEvGNJvTbDRzWM4CvN4GslxivF2iUbV9v3+tS3o+BdaMIwPWxGf0F | ||||
|  | sl+u6HBti7VBRxvp5/pmlSIbxE0fGBssRfdf5vmLSnoS0Xr72Zx7yRor4Zi6Uca69+Ub3yqc5Wb4 | ||||
|  | um80573ZLtXbqVzPwX2jOerNMMzdMoCuOne56eVm+76vB7H9QyPY612u94C/Hte73sbJG33+Ztks | ||||
|  | m2WzbJbNslk2y2bZLJtls2yWzbJZNstm2SybZbNsls2yWTbLZtksm2WzbJbNslk2y2bZLJtls2yW | ||||
|  | zbJZNstm2SybZbO48v8DggJUjj9y5wwAAAAASUVORK5CYII= | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |     </data> | ||||
|  | 
 | ||||
|  | </odoo> | ||||
| @ -0,0 +1,738 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data noupdate="1"> | ||||
|  |         <record model="product.template" id="fleet_service_product"> | ||||
|  |             <field name="name">Fleet Rental Service</field> | ||||
|  |             <field name="type">service</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="vehicle_state_rent" model="fleet.vehicle.state"> | ||||
|  |             <field name="name">Rent</field> | ||||
|  |             <field name="sequence">3</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="fleet.fleet_rule_vehicle_visibility_user" model="ir.rule"> | ||||
|  |             <field name="name">User can only see his/her vehicle</field> | ||||
|  |             <field name="model_id" ref="fleet.model_fleet_vehicle"/> | ||||
|  |             <field name="groups" eval="[(4, ref('fleet.fleet_group_user')), (4, ref('rental_group_user'))]"/> | ||||
|  |             <field name="perm_read" eval="True"/> | ||||
|  |             <field name="perm_write" eval="True"/> | ||||
|  |             <field name="perm_create" eval="True"/> | ||||
|  |             <field name="perm_unlink" eval="False"/> | ||||
|  | 	        <field name="domain_force">[]</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="base.main_company" model="res.company"> | ||||
|  |             <field name="logo"> | ||||
|  |                 iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABHNCSVQICAgIfAhkiAAAAF96VFh0 | ||||
|  | UmF3IHByb2ZpbGUgdHlwZSBBUFAxAAAImeNKT81LLcpMVigoyk/LzEnlUgADYxMuE0sTS6NEAwMD | ||||
|  | CwMIMDQwMDYEkkZAtjlUKNEABZiYm6UBoblZspkpiM8FAE+6FWgbLdiMAAAgAElEQVR4nOy9ebQd | ||||
|  | x3kf+Kvq7rvf+1asBEiQBAHuokhKokyQFLiYki3JUiLJSywfy0kc2c4Z2Y493o8zJ1GOk+NJ4jlj | ||||
|  | j8exfEZOvESSY8uxFMtaQIoiAXAVKQIQse/b2++7++2qb/6opav7Lu89EKQewP4OLrq7ul93VXV9 | ||||
|  | 3/f7lqoGUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRS | ||||
|  | SimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkop | ||||
|  | pZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWU | ||||
|  | UkoppZRSSiklh9j3ugIpXRoREXvhhRf8kZERPj09zWu1WmbNmjW3ZzKZO4Ig2Mo538w5X+d53gTn | ||||
|  | vMI5L3iel+WcB5xzHwDnnDMiAikSQohQStkVQrSklHUhxIIQYlpKea7b7Z5otVqvNZvN71Sr1WNj | ||||
|  | Y2PdyclJefr0afGe97xHMMboe90nKa2cUgFwhdCuXbv8XC4X1Gq1TLFY3FAoFB7K5XL3+L5/M+f8 | ||||
|  | 2mw2uyaTyRQ8z7N/wxiLbZP7/YiIevbNVkqJTqeDTqdT63a75zudzrFOp7NvcXFxb6PReN7zvKlS | ||||
|  | qdRptVrdnTt3hpet8Sm9YZQKgFVKRMS/+tWv5oMgyGez2W2VSuUD2Wz23iAItudyuQ1BEPiMMZgf | ||||
|  | sDJGv4T6xPZd4RCGIRqNRrfdbp9st9uv1uv1Z+r1+lc9zzvV7Xabjz32WJMxJi9rhVK6LJQKgFVE | ||||
|  | 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 | ||||
|  | ltDz9jdK6BtVq7ou11t/3IjO2g1xdbvfqa3b9m7riurLtpft836W6zGAuwGF9dR1275eMCh73Km+ | ||||
|  | 2z5dlRs1oMpet1vddyNE/H4DQKe2jfS9lUs3g7Zbu8H7CQDrae+mbT39ui43epBdrwG/UdXhetR1 | ||||
|  | arve4vx/jABQpv96OOj1Ao+N9CnTtpG+6yo3a5DdKCDIq79euvhGxfL/GDl+p3IjJYKyfa637aFT | ||||
|  | fae2jfTdULnZg+56EsT1JOaNEvGNJvTbDRzWM4CvN4GslxivF2iUbV9v3+tS3o+BdaMIwPWxGf0F | ||||
|  | sl+u6HBti7VBRxvp5/pmlSIbxE0fGBssRfdf5vmLSnoS0Xr72Zx7yRor4Zi6Uca69+Ub3yqc5Wb4 | ||||
|  | um80573ZLtXbqVzPwX2jOerNMMzdMoCuOne56eVm+76vB7H9QyPY612u94C/Hte73sbJG33+Ztks | ||||
|  | m2WzbJbNslk2y2bZLJtls2yWzbJZNstm2SybZbNsls2yWTbLZtksm2WzbJbNslk2y2bZLJtls2yW | ||||
|  | zbJZNstm2SybZbO48v8DggJUjj9y5wwAAAAASUVORK5CYII= | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,23 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys(<https://www.cybrosys.com>) | ||||
|  | #    you can modify it under the terms of the GNU AGPL (v3), Version 3. | ||||
|  | # | ||||
|  | #    It is forbidden to publish, distribute, sublicense, or sell copies | ||||
|  | #    of the Software or modified copies of the Software. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU AGPL (AGPL v3) for more details. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from . import car_rental | ||||
|  | from . import fleet | ||||
|  | 
 | ||||
|  | 
 | ||||
| @ -0,0 +1,626 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys(<https://www.cybrosys.com>) | ||||
|  | #    you can modify it under the terms of the GNU AGPL (v3), Version 3. | ||||
|  | # | ||||
|  | #    It is forbidden to publish, distribute, sublicense, or sell copies | ||||
|  | #    of the Software or modified copies of the Software. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU AGPL (AGPL v3) for more details. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from datetime import datetime, date, timedelta | ||||
|  | from odoo import models, fields, api, _ | ||||
|  | from odoo.exceptions import UserError, Warning | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class CarRentalContract(models.Model): | ||||
|  |     _name = 'car.rental.contract' | ||||
|  |     _description = 'Fleet Rental Management' | ||||
|  |     _inherit = 'mail.thread' | ||||
|  | 
 | ||||
|  |     @api.onchange('rent_start_date', 'rent_end_date') | ||||
|  |     def check_availability(self): | ||||
|  |         self.vehicle_id = '' | ||||
|  |         fleet_obj = self.env['fleet.vehicle'].search([]) | ||||
|  |         for i in fleet_obj: | ||||
|  |             for each in i.rental_reserved_time: | ||||
|  |                 if each.date_from <= self.rent_start_date <= each.date_to: | ||||
|  |                     i.write({'rental_check_availability': False}) | ||||
|  |                 elif self.rent_start_date < each.date_from: | ||||
|  |                     if each.date_from <= self.rent_end_date <= each.date_to: | ||||
|  |                         i.write({'rental_check_availability': False}) | ||||
|  |                     elif self.rent_end_date > each.date_to: | ||||
|  |                         i.write({'rental_check_availability': False}) | ||||
|  |                     else: | ||||
|  |                         i.write({'rental_check_availability': True}) | ||||
|  |                 else: | ||||
|  |                     i.write({'rental_check_availability': True}) | ||||
|  | 
 | ||||
|  |     image = fields.Binary(related='vehicle_id.image', string="Image of Vehicle") | ||||
|  |     reserved_fleet_id = fields.Many2one('rental.fleet.reserved', invisible=True, copy=False) | ||||
|  |     image_medium = fields.Binary(related='vehicle_id.image_medium', string="Logo (medium)") | ||||
|  |     image_small = fields.Binary(related='vehicle_id.image_small', string="Logo (small)") | ||||
|  |     name = fields.Char(string="Name", default="Draft Contract", readonly=True, copy=False) | ||||
|  |     customer_id = fields.Many2one('res.partner', required=True, string='Customer', help="Customer") | ||||
|  |     vehicle_id = fields.Many2one('fleet.vehicle', string="Vehicle", required=True, help="Vehicle", | ||||
|  |                                  readonly=True, | ||||
|  |                                  states={'draft': [('readonly', False)]} | ||||
|  |                                  ) | ||||
|  |     car_brand = fields.Many2one('fleet.vehicle.model.brand', string="Fleet Brand", size=50, | ||||
|  |                                 related='vehicle_id.model_id.brand_id', store=True, readonly=True) | ||||
|  |     car_color = fields.Char(string="Fleet Color", size=50, related='vehicle_id.color', store=True, copy=False, | ||||
|  |                             default='#FFFFFF', readonly=True) | ||||
|  |     cost = fields.Float(string="Rent Cost", help="This fields is to determine the cost of rent", required=True) | ||||
|  |     rent_start_date = fields.Date(string="Rent Start Date", required=True, default=str(date.today()), | ||||
|  |                                   help="Start date of contract", track_visibility='onchange') | ||||
|  |     rent_end_date = fields.Date(string="Rent End Date", required=True, help="End date of contract", | ||||
|  |                                 track_visibility='onchange') | ||||
|  |     state = fields.Selection([('draft', 'Draft'), ('reserved', 'Reserved'), ('running', 'Running'), ('cancel', 'Cancel'), | ||||
|  |                               ('checking', 'Checking'), ('invoice', 'Invoice'), ('done', 'Done')], string="State", | ||||
|  |                              default="draft", copy=False, track_visibility='onchange') | ||||
|  |     notes = fields.Text(string="Details & Notes") | ||||
|  |     cost_generated = fields.Float(string='Recurring Cost', | ||||
|  |                                   help="Costs paid at regular intervals, depending on the cost frequency") | ||||
|  |     cost_frequency = fields.Selection([('no', 'No'), ('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), | ||||
|  |                                        ('yearly', 'Yearly')], string="Recurring Cost Frequency", | ||||
|  |                                       help='Frequency of the recurring cost', required=True) | ||||
|  |     journal_type = fields.Many2one('account.journal', 'Journal', | ||||
|  |                                    default=lambda self: self.env['account.journal'].search([('id', '=', 1)])) | ||||
|  |     account_type = fields.Many2one('account.account', 'Account', | ||||
|  |                                    default=lambda self: self.env['account.account'].search([('id', '=', 17)])) | ||||
|  |     recurring_line = fields.One2many('fleet.rental.line', 'rental_number', readonly=True, help="Recurring Invoices", | ||||
|  |                                      copy=False) | ||||
|  |     first_payment = fields.Float(string='First Payment', | ||||
|  |                                  help="Transaction/Office/Contract charge amount, must paid by customer side other " | ||||
|  |                                       "than recurrent payments", | ||||
|  |                                  track_visibility='onchange', | ||||
|  |                                  required=True) | ||||
|  |     first_payment_inv = fields.Many2one('account.invoice', copy=False) | ||||
|  |     first_invoice_created = fields.Boolean(string="First Invoice Created", invisible=True, copy=False) | ||||
|  |     attachment_ids = fields.Many2many('ir.attachment', 'car_rent_checklist_ir_attachments_rel', | ||||
|  |                                       'rental_id', 'attachment_id', string="Attachments", | ||||
|  |                                       help="Images of the vehicle before contract/any attachments") | ||||
|  |     checklist_line = fields.One2many('car.rental.checklist', 'checklist_number', string="Checklist", | ||||
|  |                                      help="Facilities/Accessories, That should verify when closing the contract.", | ||||
|  |                                      states={'invoice': [('readonly', True)], | ||||
|  |                                              'done': [('readonly', True)], | ||||
|  |                                              'cancel': [('readonly', True)]}) | ||||
|  |     total = fields.Float(string="Total (Accessories/Tools)", readonly=True, copy=False) | ||||
|  |     tools_missing_cost = fields.Float(string="Missing Cost", readonly=True, copy=False, | ||||
|  |                                       help='This is the total amount of missing tools/accessories') | ||||
|  |     damage_cost = fields.Float(string="Damage Cost", copy=False) | ||||
|  |     damage_cost_sub = fields.Float(string="Damage Cost", readonly=True, copy=False) | ||||
|  |     total_cost = fields.Float(string="Total", readonly=True, copy=False) | ||||
|  |     invoice_count = fields.Integer(compute='_invoice_count', string='# Invoice', copy=False) | ||||
|  |     check_verify = fields.Boolean(compute='check_action_verify', copy=False) | ||||
|  |     sales_person = fields.Many2one('res.users', string='Sales Person', default=lambda self: self.env.uid, | ||||
|  |                                    track_visibility='always') | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def action_run(self): | ||||
|  |         self.state = 'running' | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     @api.depends('checklist_line.checklist_active') | ||||
|  |     def check_action_verify(self): | ||||
|  |         flag = 0 | ||||
|  |         for each in self: | ||||
|  |             for i in each.checklist_line: | ||||
|  |                 if i.checklist_active: | ||||
|  |                     continue | ||||
|  |                 else: | ||||
|  |                     flag = 1 | ||||
|  |             if flag == 1: | ||||
|  |                 each.check_verify = False | ||||
|  |             else: | ||||
|  |                 each.check_verify = True | ||||
|  | 
 | ||||
|  |     @api.constrains('rent_start_date', 'rent_end_date') | ||||
|  |     def validate_dates(self): | ||||
|  |         if self.rent_end_date < self.rent_start_date: | ||||
|  |             raise Warning("Please select the valid end date.") | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def set_to_done(self): | ||||
|  |         invoice_ids = self.env['account.invoice'].search([('origin', '=', self.name)]) | ||||
|  |         f = 0 | ||||
|  |         for each in invoice_ids: | ||||
|  |             if each.state != 'paid': | ||||
|  |                 f = 1 | ||||
|  |                 break | ||||
|  |         if f == 0: | ||||
|  |             self.state = 'done' | ||||
|  |         else: | ||||
|  |             raise UserError("Some Invoices are pending") | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def _invoice_count(self): | ||||
|  |         invoice_ids = self.env['account.invoice'].search([('origin', '=', self.name)]) | ||||
|  |         self.invoice_count = len(invoice_ids) | ||||
|  | 
 | ||||
|  |     @api.constrains('state') | ||||
|  |     def state_changer(self): | ||||
|  |         if self.state == "running": | ||||
|  |             state_id = self.env.ref('fleet_rental.vehicle_state_rent').id | ||||
|  |             self.vehicle_id.write({'state_id': state_id}) | ||||
|  |         elif self.state == "cancel": | ||||
|  |             state_id = self.env.ref('fleet.vehicle_state_active').id | ||||
|  |             self.vehicle_id.write({'state_id': state_id}) | ||||
|  |         elif self.state == "invoice": | ||||
|  |             self.rent_end_date = fields.datetime.now() | ||||
|  |             state_id = self.env.ref('fleet.vehicle_state_active').id | ||||
|  |             self.vehicle_id.write({'state_id': state_id}) | ||||
|  | 
 | ||||
|  |     @api.constrains('checklist_line', 'damage_cost') | ||||
|  |     def total_updater(self): | ||||
|  |         total = 0.0 | ||||
|  |         tools_missing_cost = 0.0 | ||||
|  |         for records in self.checklist_line: | ||||
|  |             total += records.price | ||||
|  |             if not records.checklist_active: | ||||
|  |                 tools_missing_cost += records.price | ||||
|  |         self.total = total | ||||
|  |         self.tools_missing_cost = tools_missing_cost | ||||
|  |         self.damage_cost_sub = self.damage_cost | ||||
|  |         self.total_cost = tools_missing_cost + self.damage_cost | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def fleet_scheduler1(self, rent_date): | ||||
|  |         inv_obj = self.env['account.invoice'] | ||||
|  |         inv_line_obj = self.env['account.invoice.line'] | ||||
|  |         recurring_obj = self.env['fleet.rental.line'] | ||||
|  |         start_date = datetime.strptime(self.rent_start_date, '%Y-%m-%d').date() | ||||
|  |         end_date = datetime.strptime(self.rent_end_date, '%Y-%m-%d').date() | ||||
|  |         supplier = self.customer_id | ||||
|  |         inv_data = { | ||||
|  |             'name': supplier.name, | ||||
|  |             'reference': supplier.name, | ||||
|  |             'account_id': supplier.property_account_payable_id.id, | ||||
|  |             'partner_id': supplier.id, | ||||
|  |             'currency_id': self.account_type.company_id.currency_id.id, | ||||
|  |             'journal_id': self.journal_type.id, | ||||
|  |             'origin': self.name, | ||||
|  |             'company_id': self.account_type.company_id.id, | ||||
|  |             'date_due': self.rent_end_date, | ||||
|  |         } | ||||
|  |         inv_id = inv_obj.create(inv_data) | ||||
|  |         product_id = self.env['product.product'].search([("name", "=", "Fleet Rental Service")]) | ||||
|  |         if product_id.property_account_income_id.id: | ||||
|  |             income_account = product_id.property_account_income_id | ||||
|  |         elif product_id.categ_id.property_account_income_categ_id.id: | ||||
|  |             income_account = product_id.categ_id.property_account_income_categ_id | ||||
|  |         else: | ||||
|  |             raise UserError( | ||||
|  |                 _('Please define income account for this product: "%s" (id:%d).') % (product_id.name, | ||||
|  |                                                                                      product_id.id)) | ||||
|  |         recurring_data = { | ||||
|  |             'name': self.vehicle_id.name, | ||||
|  |             'date_today': rent_date, | ||||
|  |             'account_info': income_account.name, | ||||
|  |             'rental_number': self.id, | ||||
|  |             'recurring_amount': self.cost_generated, | ||||
|  |             'invoice_number': inv_id.id, | ||||
|  |             'invoice_ref': inv_id.id, | ||||
|  |         } | ||||
|  |         recurring_obj.create(recurring_data) | ||||
|  |         inv_line_data = { | ||||
|  |             'name': self.vehicle_id.name, | ||||
|  |             'account_id': income_account.id, | ||||
|  |             'price_unit': self.cost_generated, | ||||
|  |             'quantity': 1, | ||||
|  |             'product_id': product_id.id, | ||||
|  |             'invoice_id': inv_id.id, | ||||
|  |         } | ||||
|  |         inv_line_obj.create(inv_line_data) | ||||
|  |         mail_content = _( | ||||
|  |             '<h3>Reminder Recurrent Payment!</h3><br/>Hi %s, <br/> This is to remind you that the ' | ||||
|  |             'recurrent payment for the ' | ||||
|  |             'rental contract has to be done.' | ||||
|  |             'Please make the payment at the earliest.' | ||||
|  |             '<br/><br/>' | ||||
|  |             'Please find the details below:<br/><br/>' | ||||
|  |             '<table><tr><td>Contract Ref<td/><td> %s<td/><tr/>' | ||||
|  |             '<tr/><tr><td>Amount <td/><td> %s<td/><tr/>' | ||||
|  |             '<tr/><tr><td>Due Date <td/><td> %s<td/><tr/>' | ||||
|  |             '<tr/><tr><td>Responsible Person <td/><td> %s, %s<td/><tr/><table/>') % \ | ||||
|  |                        (self.customer_id.name, self.name, inv_id.amount_total, inv_id.date_due, | ||||
|  |                         inv_id.user_id.name, | ||||
|  |                         inv_id.user_id.mobile) | ||||
|  |         main_content = { | ||||
|  |             'subject': "Reminder Recurrent Payment!", | ||||
|  |             'author_id': self.env.user.partner_id.id, | ||||
|  |             'body_html': mail_content, | ||||
|  |             'email_to': self.customer_id.email, | ||||
|  |         } | ||||
|  |         self.env['mail.mail'].create(main_content).send() | ||||
|  | 
 | ||||
|  |     @api.model | ||||
|  |     def fleet_scheduler(self): | ||||
|  |         inv_obj = self.env['account.invoice'] | ||||
|  |         inv_line_obj = self.env['account.invoice.line'] | ||||
|  |         recurring_obj = self.env['fleet.rental.line'] | ||||
|  |         today = date.today() | ||||
|  |         for records in self.search([]): | ||||
|  |             start_date = datetime.strptime(records.rent_start_date, '%Y-%m-%d').date() | ||||
|  |             end_date = datetime.strptime(records.rent_end_date, '%Y-%m-%d').date() | ||||
|  |             if end_date >= date.today(): | ||||
|  |                 temp = 0 | ||||
|  |                 if records.cost_frequency == 'daily': | ||||
|  |                     temp = 1 | ||||
|  |                 elif records.cost_frequency == 'weekly': | ||||
|  |                     week_days = (date.today() - start_date).days | ||||
|  |                     if week_days % 7 == 0 and week_days != 0: | ||||
|  |                         temp = 1 | ||||
|  |                 elif records.cost_frequency == 'monthly': | ||||
|  |                     if start_date.day == date.today().day and start_date != date.today(): | ||||
|  |                         temp = 1 | ||||
|  |                 elif records.cost_frequency == 'yearly': | ||||
|  |                     if start_date.day == date.today().day and start_date.month == date.today().month and \ | ||||
|  |                                     start_date != date.today(): | ||||
|  |                         temp = 1 | ||||
|  |                 if temp == 1 and records.cost_frequency != "no" and records.state == "running": | ||||
|  |                     supplier = records.customer_id | ||||
|  |                     inv_data = { | ||||
|  |                         'name': supplier.name, | ||||
|  |                         'reference': supplier.name, | ||||
|  |                         'account_id': supplier.property_account_payable_id.id, | ||||
|  |                         'partner_id': supplier.id, | ||||
|  |                         'currency_id': records.account_type.company_id.currency_id.id, | ||||
|  |                         'journal_id': records.journal_type.id, | ||||
|  |                         'origin': records.name, | ||||
|  |                         'company_id': records.account_type.company_id.id, | ||||
|  |                         'date_due': self.rent_end_date, | ||||
|  |                     } | ||||
|  |                     inv_id = inv_obj.create(inv_data) | ||||
|  |                     product_id = self.env['product.product'].search([("name", "=", "Fleet Rental Service")]) | ||||
|  |                     if product_id.property_account_income_id.id: | ||||
|  |                         income_account = product_id.property_account_income_id | ||||
|  |                     elif product_id.categ_id.property_account_income_categ_id.id: | ||||
|  |                         income_account = product_id.categ_id.property_account_income_categ_id | ||||
|  |                     else: | ||||
|  |                         raise UserError( | ||||
|  |                             _('Please define income account for this product: "%s" (id:%d).') % (product_id.name, | ||||
|  |                                                                                                  product_id.id)) | ||||
|  |                     recurring_data = { | ||||
|  |                         'name': records.vehicle_id.name, | ||||
|  |                         'date_today': today, | ||||
|  |                         'account_info': income_account.name, | ||||
|  |                         'rental_number': records.id, | ||||
|  |                         'recurring_amount': records.cost_generated, | ||||
|  |                         'invoice_number': inv_id.id, | ||||
|  |                         'invoice_ref': inv_id.id, | ||||
|  |                     } | ||||
|  |                     recurring_obj.create(recurring_data) | ||||
|  |                     inv_line_data = { | ||||
|  |                         'name': records.vehicle_id.name, | ||||
|  |                         'account_id': income_account.id, | ||||
|  |                         'price_unit': records.cost_generated, | ||||
|  |                         'quantity': 1, | ||||
|  |                         'product_id': product_id.id, | ||||
|  |                         'invoice_id': inv_id.id, | ||||
|  | 
 | ||||
|  |                     } | ||||
|  |                     inv_line_obj.create(inv_line_data) | ||||
|  |                     mail_content = _( | ||||
|  |                         '<h3>Reminder Recurrent Payment!</h3><br/>Hi %s, <br/> This is to remind you that the ' | ||||
|  |                         'recurrent payment for the ' | ||||
|  |                         'rental contract has to be done.' | ||||
|  |                         'Please make the payment at the earliest.' | ||||
|  |                         '<br/><br/>' | ||||
|  |                         'Please find the details below:<br/><br/>' | ||||
|  |                         '<table><tr><td>Contract Ref<td/><td> %s<td/><tr/>' | ||||
|  |                         '<tr/><tr><td>Amount <td/><td> %s<td/><tr/>' | ||||
|  |                         '<tr/><tr><td>Due Date <td/><td> %s<td/><tr/>' | ||||
|  |                         '<tr/><tr><td>Responsible Person <td/><td> %s, %s<td/><tr/><table/>') % \ | ||||
|  |                         (self.customer_id.name, self.name, inv_id.amount_total, inv_id.date_due, | ||||
|  |                          inv_id.user_id.name, | ||||
|  |                          inv_id.user_id.mobile) | ||||
|  |                     main_content = { | ||||
|  |                         'subject': "Reminder Recurrent Payment!", | ||||
|  |                         'author_id': self.env.user.partner_id.id, | ||||
|  |                         'body_html': mail_content, | ||||
|  |                         'email_to': self.customer_id.email, | ||||
|  |                     } | ||||
|  |                     self.env['mail.mail'].create(main_content).send() | ||||
|  |             else: | ||||
|  |                 if self.state == 'running': | ||||
|  |                     records.state = "checking" | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def action_verify(self): | ||||
|  |         self.state = "invoice" | ||||
|  |         self.reserved_fleet_id.unlink() | ||||
|  |         self.rent_end_date = fields.datetime.now() | ||||
|  |         if self.total_cost != 0: | ||||
|  |             inv_obj = self.env['account.invoice'] | ||||
|  |             inv_line_obj = self.env['account.invoice.line'] | ||||
|  |             supplier = self.customer_id | ||||
|  |             inv_data = { | ||||
|  |                 'name': supplier.name, | ||||
|  |                 'reference': supplier.name, | ||||
|  |                 'account_id': supplier.property_account_payable_id.id, | ||||
|  |                 'partner_id': supplier.id, | ||||
|  |                 'currency_id': self.account_type.company_id.currency_id.id, | ||||
|  |                 'journal_id': self.journal_type.id, | ||||
|  |                 'origin': self.name, | ||||
|  |                 'company_id': self.account_type.company_id.id, | ||||
|  |                 'date_due': self.rent_end_date, | ||||
|  |             } | ||||
|  |             inv_id = inv_obj.create(inv_data) | ||||
|  |             product_id = self.env['product.product'].search([("name", "=", "Fleet Rental Service")]) | ||||
|  |             if product_id.property_account_income_id.id: | ||||
|  |                 income_account = product_id.property_account_income_id | ||||
|  |             elif product_id.categ_id.property_account_income_categ_id.id: | ||||
|  |                 income_account = product_id.categ_id.property_account_income_categ_id | ||||
|  |             else: | ||||
|  |                 raise UserError( | ||||
|  |                     _('Please define income account for this product: "%s" (id:%d).') % (product_id.name, | ||||
|  |                                                                                          product_id.id)) | ||||
|  |             inv_line_data = { | ||||
|  |                 'name': "Damage/Tools missing cost", | ||||
|  |                 'account_id': income_account.id, | ||||
|  |                 'price_unit': self.total_cost, | ||||
|  |                 'quantity': 1, | ||||
|  |                 'product_id': product_id.id, | ||||
|  |                 'invoice_id': inv_id.id, | ||||
|  |             } | ||||
|  |             inv_line_obj.create(inv_line_data) | ||||
|  |             imd = self.env['ir.model.data'] | ||||
|  |             action = imd.xmlid_to_object('account.action_invoice_tree1') | ||||
|  |             list_view_id = imd.xmlid_to_res_id('account.invoice_tree') | ||||
|  |             form_view_id = imd.xmlid_to_res_id('account.invoice_form') | ||||
|  |             result = { | ||||
|  |                 'name': action.name, | ||||
|  |                 'help': action.help, | ||||
|  |                 'type': 'ir.actions.act_window', | ||||
|  |                 'views': [[list_view_id, 'tree'], [form_view_id, 'form'], [False, 'graph'], [False, 'kanban'], | ||||
|  |                           [False, 'calendar'], [False, 'pivot']], | ||||
|  |                 'target': action.target, | ||||
|  |                 'context': action.context, | ||||
|  |                 'res_model': 'account.invoice', | ||||
|  |             } | ||||
|  |             if len(inv_id) > 1: | ||||
|  |                 result['domain'] = "[('id','in',%s)]" % inv_id.ids | ||||
|  |             elif len(inv_id) == 1: | ||||
|  |                 result['views'] = [(form_view_id, 'form')] | ||||
|  |                 result['res_id'] = inv_id.ids[0] | ||||
|  |             else: | ||||
|  |                 result = {'type': 'ir.actions.act_window_close'} | ||||
|  |             return result | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def action_confirm(self): | ||||
|  |         check_availability = 0 | ||||
|  |         for each in self.vehicle_id.rental_reserved_time: | ||||
|  |             if each.date_from <= self.rent_start_date <= each.date_to: | ||||
|  |                 check_availability = 1 | ||||
|  |             elif self.rent_start_date < each.date_from: | ||||
|  |                 if each.date_from <= self.rent_end_date <= each.date_to: | ||||
|  |                     check_availability = 1 | ||||
|  |                 elif self.rent_end_date > each.date_to: | ||||
|  |                     check_availability = 1 | ||||
|  |                 else: | ||||
|  |                     check_availability = 0 | ||||
|  |             else: | ||||
|  |                 check_availability = 0 | ||||
|  |         if check_availability == 0: | ||||
|  |             reserved_id = self.vehicle_id.rental_reserved_time.create({'customer_id': self.customer_id.id, | ||||
|  |                                                                        'date_from': self.rent_start_date, | ||||
|  |                                                                        'date_to': self.rent_end_date, | ||||
|  |                                                                        'reserved_obj': self.vehicle_id.id | ||||
|  |                                                                        }) | ||||
|  |             self.write({'reserved_fleet_id': reserved_id.id}) | ||||
|  |         else: | ||||
|  |             raise Warning('Sorry This vehicle is already booked by another customer') | ||||
|  |         self.state = "reserved" | ||||
|  |         sequence_code = 'car.rental.sequence' | ||||
|  |         order_date = self.create_date | ||||
|  |         order_date = str(order_date)[0:10] | ||||
|  |         self.name = self.env['ir.sequence'] \ | ||||
|  |             .with_context(ir_sequence_date=order_date).next_by_code(sequence_code) | ||||
|  |         mail_content = _('<h3>Order Confirmed!</h3><br/>Hi %s, <br/> This is to notify that your rental contract has ' | ||||
|  |                          'been confirmed. <br/><br/>' | ||||
|  |                          'Please find the details below:<br/><br/>' | ||||
|  |                          '<table><tr><td>Reference Number<td/><td> %s<td/><tr/>' | ||||
|  |                          '<tr><td>Time Range <td/><td> %s to %s <td/><tr/><tr><td>Vehicle <td/><td> %s<td/><tr/>' | ||||
|  |                          '<tr><td>Point Of Contact<td/><td> %s , %s<td/><tr/><table/>') % \ | ||||
|  |                          (self.customer_id.name, self.name, self.rent_start_date, self.rent_end_date, | ||||
|  |                         self.vehicle_id.name, self.sales_person.name, self.sales_person.mobile) | ||||
|  |         main_content = { | ||||
|  |             'subject': _('Confirmed: %s - %s') % | ||||
|  |                         (self.name, self.vehicle_id.name), | ||||
|  |             'author_id': self.env.user.partner_id.id, | ||||
|  |             'body_html': mail_content, | ||||
|  |             'email_to': self.customer_id.email, | ||||
|  |         } | ||||
|  |         self.env['mail.mail'].create(main_content).send() | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def action_cancel(self): | ||||
|  |         self.state = "cancel" | ||||
|  |         if self.reserved_fleet_id: | ||||
|  |             self.reserved_fleet_id.unlink() | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def force_checking(self): | ||||
|  |         self.state = "checking" | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def action_view_invoice(self): | ||||
|  |         inv_obj = self.env['account.invoice'].search([('origin', '=', self.name)]) | ||||
|  |         inv_ids = [] | ||||
|  |         for each in inv_obj: | ||||
|  |             inv_ids.append(each.id) | ||||
|  |         view_id = self.env.ref('account.invoice_form').id | ||||
|  |         if inv_ids: | ||||
|  |             if len(inv_ids) <= 1: | ||||
|  |                 value = { | ||||
|  |                     'view_type': 'form', | ||||
|  |                     'view_mode': 'form', | ||||
|  |                     'res_model': 'account.invoice', | ||||
|  |                     'view_id': view_id, | ||||
|  |                     'type': 'ir.actions.act_window', | ||||
|  |                     'name': _('Invoice'), | ||||
|  |                     'res_id': inv_ids and inv_ids[0] | ||||
|  |                 } | ||||
|  |             else: | ||||
|  |                 value = { | ||||
|  |                     'domain': str([('id', 'in', inv_ids)]), | ||||
|  |                     'view_type': 'form', | ||||
|  |                     'view_mode': 'tree,form', | ||||
|  |                     'res_model': 'account.invoice', | ||||
|  |                     'view_id': False, | ||||
|  |                     'type': 'ir.actions.act_window', | ||||
|  |                     'name': _('Invoice'), | ||||
|  |                     'res_id': inv_ids | ||||
|  |                 } | ||||
|  | 
 | ||||
|  |             return value | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def action_invoice_create(self): | ||||
|  |         for each in self: | ||||
|  |             rent_date = self.rent_start_date | ||||
|  |             if each.cost_frequency != 'no' and rent_date < date.today(): | ||||
|  |                 rental_days = (date.today() - rent_date).days | ||||
|  |                 if each.cost_frequency == 'weekly': | ||||
|  |                     rental_days = int(rental_days / 7) | ||||
|  |                 if each.cost_frequency == 'monthly': | ||||
|  |                     rental_days = int(rental_days / 30) | ||||
|  |                 for each1 in range(0, rental_days + 1): | ||||
|  |                     if rent_date > datetime.strptime(each.rent_end_date, "%Y-%m-%d").date(): | ||||
|  |                         break | ||||
|  |                     each.fleet_scheduler1(rent_date) | ||||
|  |                     if each.cost_frequency == 'daily': | ||||
|  |                         rent_date = rent_date + timedelta(days=1) | ||||
|  |                     if each.cost_frequency == 'weekly': | ||||
|  |                         rent_date = rent_date + timedelta(days=7) | ||||
|  |                     if each.cost_frequency == 'monthly': | ||||
|  |                         rent_date = rent_date + timedelta(days=30) | ||||
|  | 
 | ||||
|  |         if self.first_payment != 0: | ||||
|  |             self.first_invoice_created = True | ||||
|  |             inv_obj = self.env['account.invoice'] | ||||
|  |             inv_line_obj = self.env['account.invoice.line'] | ||||
|  |             supplier = self.customer_id | ||||
|  |             inv_data = { | ||||
|  |                 'name': supplier.name, | ||||
|  |                 'reference': supplier.name, | ||||
|  |                 'account_id': supplier.property_account_payable_id.id, | ||||
|  |                 'partner_id': supplier.id, | ||||
|  |                 'currency_id': self.account_type.company_id.currency_id.id, | ||||
|  |                 'journal_id': self.journal_type.id, | ||||
|  |                 'origin': self.name, | ||||
|  |                 'company_id': self.account_type.company_id.id, | ||||
|  |                 'date_due': self.rent_end_date, | ||||
|  |             } | ||||
|  |             inv_id = inv_obj.create(inv_data) | ||||
|  |             self.first_payment_inv = inv_id.id | ||||
|  |             product_id = self.env['product.product'].search([("name", "=", "Fleet Rental Service")]) | ||||
|  |             if product_id.property_account_income_id.id: | ||||
|  |                 income_account = product_id.property_account_income_id.id | ||||
|  |             elif product_id.categ_id.property_account_income_categ_id.id: | ||||
|  |                 income_account = product_id.categ_id.property_account_income_categ_id.id | ||||
|  |             else: | ||||
|  |                 raise UserError( | ||||
|  |                     _('Please define income account for this product: "%s" (id:%d).') % (product_id.name, | ||||
|  |                                                                                          product_id.id)) | ||||
|  |             inv_line_data = { | ||||
|  |                 'name': self.vehicle_id.name, | ||||
|  |                 'account_id': income_account, | ||||
|  |                 'price_unit': self.first_payment, | ||||
|  |                 'quantity': 1, | ||||
|  |                 'product_id': product_id.id, | ||||
|  |                 'invoice_id': inv_id.id, | ||||
|  |             } | ||||
|  |             inv_line_obj.create(inv_line_data) | ||||
|  |             inv_id.action_invoice_open() | ||||
|  |             mail_content = _( | ||||
|  |                 '<h3>First Payment Received!</h3><br/>Hi %s, <br/> This is to notify that your first payment has ' | ||||
|  |                 'been received. <br/><br/>' | ||||
|  |                 'Please find the details below:<br/><br/>' | ||||
|  |                 '<table><tr><td>Invoice Number<td/><td> %s<td/><tr/>' | ||||
|  |                 '<tr><td>Date<td/><td> %s <td/><tr/><tr><td>Amount <td/><td> %s<td/><tr/><table/>') % \ | ||||
|  |                            (self.customer_id.name, inv_id.number, inv_id.date_invoice, inv_id.amount_total) | ||||
|  |             main_content = { | ||||
|  |                 'subject': _('Payment Received: %s') % inv_id.number, | ||||
|  |                 'author_id': self.env.user.partner_id.id, | ||||
|  |                 'body_html': mail_content, | ||||
|  |                 'email_to': self.customer_id.email, | ||||
|  |             } | ||||
|  |             self.env['mail.mail'].create(main_content).send() | ||||
|  |             imd = self.env['ir.model.data'] | ||||
|  |             action = imd.xmlid_to_object('account.action_invoice_tree1') | ||||
|  |             list_view_id = imd.xmlid_to_res_id('account.invoice_tree') | ||||
|  |             form_view_id = imd.xmlid_to_res_id('account.invoice_form') | ||||
|  |             result = { | ||||
|  |                 'name': action.name, | ||||
|  |                 'help': action.help, | ||||
|  |                 'type': 'ir.actions.act_window', | ||||
|  |                 'views': [[list_view_id, 'tree'], [form_view_id, 'form'], [False, 'graph'], [False, 'kanban'], | ||||
|  |                           [False, 'calendar'], [False, 'pivot']], | ||||
|  |                 'target': action.target, | ||||
|  |                 'context': action.context, | ||||
|  |                 'res_model': 'account.invoice', | ||||
|  |             } | ||||
|  |             if len(inv_id) > 1: | ||||
|  |                 result['domain'] = "[('id','in',%s)]" % inv_id.ids | ||||
|  |             elif len(inv_id) == 1: | ||||
|  |                 result['views'] = [(form_view_id, 'form')] | ||||
|  |                 result['res_id'] = inv_id.ids[0] | ||||
|  |             else: | ||||
|  |                 result = {'type': 'ir.actions.act_window_close'} | ||||
|  |             return result | ||||
|  |         else: | ||||
|  |             raise Warning("Please enter advance amount to make first payment") | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class FleetRentalLine(models.Model): | ||||
|  |     _name = 'fleet.rental.line' | ||||
|  | 
 | ||||
|  |     name = fields.Char('Description') | ||||
|  |     date_today = fields.Date('Date') | ||||
|  |     account_info = fields.Char('Account') | ||||
|  |     recurring_amount = fields.Float('Amount') | ||||
|  |     rental_number = fields.Many2one('car.rental.contract', string='Rental Number') | ||||
|  |     payment_info = fields.Char(compute='paid_info', string='Payment Stage', default='draft') | ||||
|  |     invoice_number = fields.Integer(string='Invoice ID') | ||||
|  |     invoice_ref = fields.Many2one('account.invoice', string='Invoice Ref') | ||||
|  |     date_due = fields.Date(string='Due Date', related='invoice_ref.date_due') | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def paid_info(self): | ||||
|  |         for each in self: | ||||
|  |             if self.env['account.invoice'].browse(each.invoice_number): | ||||
|  |                 each.payment_info = self.env['account.invoice'].browse(each.invoice_number).state | ||||
|  |             else: | ||||
|  |                 each.payment_info = 'Record Deleted' | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class CarRentalChecklist(models.Model): | ||||
|  |     _name = 'car.rental.checklist' | ||||
|  | 
 | ||||
|  |     name = fields.Many2one('car.tools', string="Name") | ||||
|  |     checklist_active = fields.Boolean(string="Available", default=True) | ||||
|  |     checklist_number = fields.Many2one('car.rental.contract', string="Checklist Number") | ||||
|  |     price = fields.Float(string="Price") | ||||
|  | 
 | ||||
|  |     @api.onchange('name') | ||||
|  |     def onchange_name(self): | ||||
|  |         self.price = self.name.price | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class CarTools(models.Model): | ||||
|  |     _name = 'car.tools' | ||||
|  | 
 | ||||
|  |     name = fields.Char(string="Name") | ||||
|  |     price = fields.Float(string="Price") | ||||
| @ -0,0 +1,48 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys(<https://www.cybrosys.com>) | ||||
|  | #    you can modify it under the terms of the GNU AGPL (v3), Version 3. | ||||
|  | # | ||||
|  | #    It is forbidden to publish, distribute, sublicense, or sell copies | ||||
|  | #    of the Software or modified copies of the Software. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU AGPL (AGPL v3) for more details. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from odoo import models, fields | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class FleetReservedTime(models.Model): | ||||
|  |     _name = "rental.fleet.reserved" | ||||
|  |     _description = "Reserved Time" | ||||
|  | 
 | ||||
|  |     customer_id = fields.Many2one('res.partner', string='Customer') | ||||
|  |     date_from = fields.Date(string='Reserved Date From') | ||||
|  |     date_to = fields.Date(string='Reserved Date To') | ||||
|  |     reserved_obj = fields.Many2one('fleet.vehicle') | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class EmployeeFleet(models.Model): | ||||
|  |     _inherit = 'fleet.vehicle' | ||||
|  | 
 | ||||
|  |     rental_check_availability = fields.Boolean(default=True, copy=False) | ||||
|  |     color = fields.Char(string='Color', default='#FFFFFF') | ||||
|  |     rental_reserved_time = fields.One2many('rental.fleet.reserved', 'reserved_obj', String='Reserved Time', readonly=1, | ||||
|  |                                            ondelete='cascade') | ||||
|  |     fuel_type = fields.Selection([('gasoline', 'Gasoline'), | ||||
|  |                                   ('diesel', 'Diesel'), | ||||
|  |                                   ('electric', 'Electric'), | ||||
|  |                                   ('hybrid', 'Hybrid'), | ||||
|  |                                   ('petrol', 'Petrol')], | ||||
|  |                                  'Fuel Type', help='Fuel Used by the vehicle') | ||||
|  | 
 | ||||
|  |     _sql_constraints = [('vin_sn_unique', 'unique (vin_sn)', "Chassis Number already exists !"), | ||||
|  |                         ('license_plate_unique', 'unique (license_plate)', "License plate already exists !")] | ||||
| @ -0,0 +1,21 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys(<https://www.cybrosys.com>) | ||||
|  | #    you can modify it under the terms of the GNU AGPL (v3), Version 3. | ||||
|  | # | ||||
|  | #    It is forbidden to publish, distribute, sublicense, or sell copies | ||||
|  | #    of the Software or modified copies of the Software. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU AGPL (AGPL v3) for more details. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from . import rental_report | ||||
|  | 
 | ||||
| @ -0,0 +1,100 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | # | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys(<https://www.cybrosys.com>) | ||||
|  | #    you can modify it under the terms of the GNU AGPL (v3), Version 3. | ||||
|  | # | ||||
|  | #    It is forbidden to publish, distribute, sublicense, or sell copies | ||||
|  | #    of the Software or modified copies of the Software. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU AGPL (AGPL v3) for more details. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from odoo import models, fields, tools | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class FleetRentalReport(models.Model): | ||||
|  |     _name = "report.fleet.rental" | ||||
|  |     _description = "Fleet Rental Analysis" | ||||
|  |     _auto = False | ||||
|  | 
 | ||||
|  |     name = fields.Char(string="Name") | ||||
|  |     customer_id = fields.Many2one('res.partner') | ||||
|  |     vehicle_id = fields.Many2one('fleet.vehicle') | ||||
|  |     car_brand = fields.Char(string="Car Brand") | ||||
|  |     car_color = fields.Char(string="Car Color") | ||||
|  |     cost = fields.Float(string="Rent Cost") | ||||
|  |     rent_start_date = fields.Date(string="Rent Start Date") | ||||
|  |     rent_end_date = fields.Date(string="Rent End Date") | ||||
|  |     state = fields.Selection([('draft', 'Draft'), ('running', 'Running'), ('cancel', 'Cancel'), | ||||
|  |                               ('checking', 'Checking'), ('done', 'Done')], string="State") | ||||
|  |     cost_frequency = fields.Selection([('no', 'No'), ('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), | ||||
|  |                                        ('yearly', 'Yearly')], string="Recurring Cost Frequency") | ||||
|  |     total = fields.Float(string="Total(Tools)") | ||||
|  |     tools_missing_cost = fields.Float(string="Tools missing cost") | ||||
|  |     damage_cost = fields.Float(string="Damage cost") | ||||
|  |     damage_cost_sub = fields.Float(string="Damage cost") | ||||
|  |     total_cost = fields.Float(string="Total cost") | ||||
|  | 
 | ||||
|  |     _order = 'name desc' | ||||
|  | 
 | ||||
|  |     def _select(self): | ||||
|  |         select_str = """ | ||||
|  |              SELECT | ||||
|  |                     (select 1 ) AS nbr, | ||||
|  |                     t.id as id, | ||||
|  |                     t.name as name, | ||||
|  |                     t.car_brand as car_brand, | ||||
|  |                     t.customer_id as customer_id, | ||||
|  |                     t.vehicle_id as vehicle_id, | ||||
|  |                     t.car_color as car_color, | ||||
|  |                     t.cost as cost, | ||||
|  |                     t.rent_start_date as rent_start_date, | ||||
|  |                     t.rent_end_date as rent_end_date, | ||||
|  |                     t.state as state, | ||||
|  |                     t.cost_frequency as cost_frequency, | ||||
|  |                     t.total as total, | ||||
|  |                     t.tools_missing_cost as tools_missing_cost, | ||||
|  |                     t.damage_cost as damage_cost, | ||||
|  |                     t.damage_cost_sub as damage_cost_sub, | ||||
|  |                     t.total_cost as total_cost | ||||
|  |         """ | ||||
|  |         return select_str | ||||
|  | 
 | ||||
|  |     def _group_by(self): | ||||
|  |         group_by_str = """ | ||||
|  |                 GROUP BY | ||||
|  |                     t.id, | ||||
|  |                     name, | ||||
|  |                     car_brand, | ||||
|  |                     customer_id, | ||||
|  |                     vehicle_id, | ||||
|  |                     car_color, | ||||
|  |                     cost, | ||||
|  |                     rent_start_date, | ||||
|  |                     rent_end_date, | ||||
|  |                     state, | ||||
|  |                     cost_frequency, | ||||
|  |                     total, | ||||
|  |                     tools_missing_cost, | ||||
|  |                     damage_cost, | ||||
|  |                     damage_cost_sub, | ||||
|  |                     total_cost | ||||
|  |         """ | ||||
|  |         return group_by_str | ||||
|  | 
 | ||||
|  |     def init(self): | ||||
|  |         tools.sql.drop_view_if_exists(self._cr, 'report_fleet_rental') | ||||
|  |         self._cr.execute(""" | ||||
|  |             CREATE view report_fleet_rental as | ||||
|  |               %s | ||||
|  |               FROM car_rental_contract t | ||||
|  |                 %s | ||||
|  |         """ % (self._select(), self._group_by())) | ||||
| @ -0,0 +1,27 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8" ?> | ||||
|  | <odoo> | ||||
|  | 
 | ||||
|  |     <data> | ||||
|  |          <record id="view_report_car_rental" model="ir.ui.view"> | ||||
|  |             <field name="name">report.fleet.rental.pivot</field> | ||||
|  |             <field name="model">report.fleet.rental</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <pivot string="Fleet Rental Analysis" display_quantity="true" disable_linking="True"> | ||||
|  |                      <field name="name" type="row"/> | ||||
|  |                  </pivot> | ||||
|  |              </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="action_fleet_rental_analysis" model="ir.actions.act_window"> | ||||
|  |             <field name="name">Fleet Rental Analysis</field> | ||||
|  |             <field name="res_model">report.fleet.rental</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_mode">pivot</field> | ||||
|  |             <field name="context">{'group_by_no_leaf':1,'group_by':[]}</field> | ||||
|  |             <field name="help">This report allows you to analyse the performance of your Fleet Rental. </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <menuitem name="Fleet Rental Analysis" action="action_fleet_rental_analysis" id="menu_fleet_rental_analysis" parent="fleet.menu_fleet_reporting" sequence="1"/> | ||||
|  |     </data> | ||||
|  | 
 | ||||
|  | </odoo> | ||||
| 
 | 
| @ -0,0 +1,20 @@ | |||||
|  | <?xml version="1.0" ?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  | 
 | ||||
|  |         <record id="rental_group_user" model="res.groups"> | ||||
|  |             <field name="name">Rental User</field> | ||||
|  |             <field name="category_id" ref="fleet.module_fleet_category"/> | ||||
|  |             <field name="implied_ids" eval="[(4, ref('base.group_user')), (4, ref('fleet.fleet_group_user')), | ||||
|  |                                              (4, ref('account.group_account_user'))]"/> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="fleet.fleet_group_manager" model="res.groups"> | ||||
|  |             <field name="name">Manager</field> | ||||
|  |             <field name="implied_ids" eval="[(4, ref('fleet.fleet_group_user')), (4, ref('rental_group_user'))]"/> | ||||
|  |             <field name="category_id" ref="fleet.module_fleet_category"/> | ||||
|  |             <field name="users" eval="[(4, ref('base.user_root'))]"/> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| After Width: | Height: | Size: 137 KiB | 
| After Width: | Height: | Size: 44 KiB | 
| After Width: | Height: | Size: 31 KiB | 
| After Width: | Height: | Size: 42 KiB | 
| After Width: | Height: | Size: 65 KiB | 
| After Width: | Height: | Size: 50 KiB | 
| After Width: | Height: | Size: 33 KiB | 
| After Width: | Height: | Size: 29 KiB | 
| After Width: | Height: | Size: 36 KiB | 
| After Width: | Height: | Size: 66 KiB | 
| @ -0,0 +1,229 @@ | |||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <h2 class="oe_slogan">Fleet/Vehicle Rental Management</h2> | ||||
|  |         <h3 class="oe_slogan">This module helps with an opportunity to give the vehicles like car,van,bike,jeep etc.. for Rent.</h3> | ||||
|  |         <h4 class="oe_slogan"><a href="https://www.cybrosys.com">Cybrosys Technologies</a> </h4> | ||||
|  |     </div> | ||||
|  |     <div class="oe_row oe_spaced" style="padding-left:65px;"> | ||||
|  |         <h4>Features:</h4> | ||||
|  |         <div> | ||||
|  |             <span style="color:green;"> ☑ </span> Multiple Plans for Rental Contract(Days/Weeks/Months/Years).<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Integrated with Accounting Module.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Automatically Create Recurring Invoices.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Sending email for confirmation, first payment and recurrent invoices.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Check List Facility.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Separate Tree view for Checklist.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Damage Checking Facility.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Billing Facility for Damages/Check Lists.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Contract Payment Validations.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Detailed Fleet Rental Analysis Report.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Access Rights From Multiple Level.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Flexible for further customization.<br/> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div class="oe_picture"> | ||||
|  |             <h3 class="oe_slogan">Overview</h3> | ||||
|  |             <p class="oe_mt32" style="text-align: center;"> | ||||
|  |                This module is an application for Vehicle Rental System which helps in managing the rental of vehicles like car,van,bike, jeep etc... | ||||
|  |                 It manages fleet/vehicle property by extending the basic fleet module of Odoo. | ||||
|  |                 Currently fleet module does not have any connection with accounting module. But in this module, | ||||
|  |                 we integrate the module with accounting also. | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <h3 class="oe_slogan">Fleet Rental Management</h3> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <p> | ||||
|  |                 <h4>Fleet Rental -> Rental Management</h4> | ||||
|  |             <p> | ||||
|  |         </div> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <a href="https://www.cybrosys.com"> | ||||
|  |                 <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                     <img style="border:10px solid white;height: 400px;" src="menu_items.png"> | ||||
|  |                 </div> | ||||
|  |             </a> | ||||
|  |             <span style="text-align: center;padding-left:65px;">☛ When you install the module, an extra menu named Rental Management is created | ||||
|  |                 under the Fleet Menu. Also "Fleet" menu is replaced as "Fleet Rental". Here you can see different color | ||||
|  |                 codes according to each state. This helps you in finding out contracts easily.</span> | ||||
|  |         </div> | ||||
|  |         <br> | ||||
|  |          <div class="" style="text-align: center"> | ||||
|  |              <div class="" style="text-align: center"> | ||||
|  |                 <p> | ||||
|  |                     <h4>Fleet Rental -> Rental Management -> Rental Contract</h4> | ||||
|  |                 <p> | ||||
|  |             </div> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="contract_menu.png"> | ||||
|  |             </div> | ||||
|  |              <div style="padding-left:65px;"> | ||||
|  |                  <span>☛ This is the Rental Contract form. You can see the Recurring lines created according to | ||||
|  |                      the Recurring cost. And also you can see all the invoices related to this contract from the smart | ||||
|  |                      button "Invoices".</span> | ||||
|  |              </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <h3 class="oe_slogan">Checklist</h3> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height: 400px;" src="checklist_contract.png"> | ||||
|  |             </div> | ||||
|  |             <span>☛ Checklist Tab in Rental Contract Form.</span> | ||||
|  |         </div> | ||||
|  |         <br> | ||||
|  |          <div class="" style="text-align: center"> | ||||
|  |              <div class="" style="text-align: center;padding-left:65px;"> | ||||
|  |                 <p> | ||||
|  |                    Here you can add the list of tools given with the vehicle. | ||||
|  |                     When the vehicle is returned back, the checklist can be validated and helps you to identify the | ||||
|  |                     tools that are not returned. The price of unreturned tools will be added to the missing tool cost. | ||||
|  |                     The renter have to pay that amount and you can also add damage cost if any. Check the damages by | ||||
|  |                     using the images of vehicle uploaded before the contract. | ||||
|  |                 <p> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Checklist Easy Access</h3> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="check_list_tree.png"> | ||||
|  |             </div> | ||||
|  |             <span style="text-align: center">☛ No need to open all rental contract to see the checklist.</span> | ||||
|  |         </div> | ||||
|  |          <div class="" style="text-align: center"> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="check_list_form.png"> | ||||
|  |             </div> | ||||
|  |              <div style="padding-left:65px;"> | ||||
|  |                  <span> | ||||
|  |                  You can also create invoice against the checklist from here. | ||||
|  |                  The checklists are those which are in the checking state, | ||||
|  |                  that means the ones ready for checking the operation. | ||||
|  |                  If there is any damage or any missing tool, then you can charge all that from customer.</span> | ||||
|  |              </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Email Notifications</h3> | ||||
|  |         <div class=""> | ||||
|  |             <div style="padding-left:65px;"> | ||||
|  |                 <span> | ||||
|  |                      ☛The system will send email notification to notify the confirmation of contract.<br/> | ||||
|  |                      ☛The system will notify the first payment through email.<br/> | ||||
|  |                      ☛The system will remind all recurrent invoices through email.<br/> | ||||
|  |                     <I>Note:- You should configure outgoing and incoming e-mail settings from your odoo for email service.</I> | ||||
|  |                 </span> | ||||
|  |             </div> | ||||
|  |             <div class="oe_span12"> | ||||
|  |                  <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                     <img style="border:10px solid white;height:400px;" src="email3.png"> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |             <div class="oe_span12"> | ||||
|  |                  <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                     <img style="border:10px solid white;height:400px;" src="email2.png"> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |             <div class="oe_span12"> | ||||
|  |                  <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                     <img style="border:10px solid white;height:400px;" src="email1.png"> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Contract Payment Validations</h3> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="rental_inv.png"> | ||||
|  |             </div> | ||||
|  |             <div style="padding-left:65px;"> | ||||
|  |                 <span>☛ | ||||
|  |                  Here you can see you have 4 invoices and this contract is in 'Invoice' state. | ||||
|  |                  So you can set this contract to done only if all the invoices are in 'paid' state. | ||||
|  |                  Otherwise it will raise a warning as follow. | ||||
|  |             </span> | ||||
|  | 
 | ||||
|  |             </div> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="rental_validation.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Fleet Rental Analysis Report</h3> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="report.png"> | ||||
|  |             </div> | ||||
|  |              <span>☛ | ||||
|  |                  You can also analyse all your fleet rentals from Fleet Rental -> Reports -> Fleet Rental Analysis. | ||||
|  |             </span> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Access Rights</h3> | ||||
|  |         <div class="" style="padding-left:65px;"> | ||||
|  |             <span>☛Fleet Manager :- Fleet manager has the complete access across the fleet rental management <br/></span> | ||||
|  |             <span>☛Fleet Rental User :- Fleet rental user can read, write and create the records.</span> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <h2 class="oe_slogan" style="margin-top:20px;" >Need Any Help?</h2> | ||||
|  |     <div class="oe_slogan" style="margin-top:10px !important;"> | ||||
|  |         <div> | ||||
|  |             <a  class="btn btn-primary btn-lg mt8" | ||||
|  |             style="color: #FFFFFF !important;border-radius: 0;" href="https://www.cybrosys.com"><i | ||||
|  |             class="fa fa-envelope"></i> Email </a> <a | ||||
|  |             class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | ||||
|  |             href="https://www.cybrosys.com/contact/"><i | ||||
|  |             class="fa fa-phone"></i> Contact Us </a> <a | ||||
|  |             class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | ||||
|  |             href="https://www.cybrosys.com/odoo-customization-and-installation/"><i | ||||
|  |             class="fa fa-check-square"></i> Request Customization </a> | ||||
|  |         </div> | ||||
|  |         <br> | ||||
|  |         <img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block"> | ||||
|  |         <div> | ||||
|  |           <a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;"></i></a></td> | ||||
|  |           <a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |           <a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px;padding-left: 8px;"></i></a></td> | ||||
|  |           <a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |           <a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
| After Width: | Height: | Size: 62 KiB | 
| After Width: | Height: | Size: 57 KiB | 
| After Width: | Height: | Size: 56 KiB | 
| After Width: | Height: | Size: 47 KiB | 
| @ -0,0 +1,218 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8" ?> | ||||
|  | <odoo> | ||||
|  |     <data noupdate="1"> | ||||
|  |         <record id="sequence_car_rental" model="ir.sequence"> | ||||
|  |             <field name="name">Car Rental Sequence</field> | ||||
|  |             <field name="code">car.rental.sequence</field> | ||||
|  |             <field name="prefix">RENT/%(range_year)s/</field> | ||||
|  |             <field eval="1" name="number_next"/> | ||||
|  |             <field eval="1" name="number_increment"/> | ||||
|  |             <field eval="True" name="use_date_range"/> | ||||
|  |             <field name="padding">4</field> | ||||
|  |         </record> | ||||
|  |     </data> | ||||
|  | 
 | ||||
|  |     <data> | ||||
|  |         <record id="cron_scheduler_for_fleet" model="ir.cron"> | ||||
|  |           <field name="name">Fleet scheduler</field> | ||||
|  |           <field name="model_id" ref="fleet_rental.model_car_rental_contract"/> | ||||
|  |           <field name="state">code</field> | ||||
|  |           <field name="code">model.fleet_scheduler()</field> | ||||
|  |           <field name="active" eval="True"/> | ||||
|  |           <field name="user_id" ref="base.user_root"/> | ||||
|  |           <field name="interval_number">1</field> | ||||
|  |           <field name="interval_type">days</field> | ||||
|  |           <field name="numbercall">-1</field> | ||||
|  |           <field name="doall" eval="False"/> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record model="ir.ui.view" id="rental_fleet_vehicle_inherit_form_view"> | ||||
|  |             <field name="name">fleet.vehicle.form.inherit.view</field> | ||||
|  |             <field name="model">fleet.vehicle</field> | ||||
|  |             <field name="inherit_id" ref="fleet.fleet_vehicle_view_form"/> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <field name="car_value" position="after"> | ||||
|  |                     <field name="rental_check_availability" invisible="1"/> | ||||
|  |                     <field name="rental_reserved_time" invisible="1"/> | ||||
|  |                 </field> | ||||
|  |                 <field name="color" position="replace"> | ||||
|  |                     <field name="color"/> | ||||
|  |                 </field> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="car_rental_contract_form_view" model="ir.ui.view"> | ||||
|  |             <field name="name">car.contract.result.form</field> | ||||
|  |             <field name="model">car.rental.contract</field> | ||||
|  |             <field name="type">form</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="car_result"> | ||||
|  |                     <header> | ||||
|  |                         <button name="action_confirm" string="Confirm" type="object" | ||||
|  |                                 attrs="{'invisible': [('state', '!=', 'draft')]}" class="oe_highlight"/> | ||||
|  |                         <button name="action_run" string="Run" type="object" | ||||
|  |                                 attrs="{'invisible': [('state', '!=', 'reserved')]}" class="oe_highlight"/> | ||||
|  |                         <button name="action_cancel" string="Cancel" type="object" | ||||
|  |                                 attrs="{'invisible': [('state', 'not in', ('draft', 'reserved'))]}" class="oe_highlight"/> | ||||
|  |                         <button name="action_invoice_create" string="Create Invoice" | ||||
|  |                                 attrs="{'invisible': ['|',('state', '!=', 'running'), | ||||
|  |                                 ('first_invoice_created','=',True)]}" type="object" class="oe_highlight"/> | ||||
|  |                         <button name="force_checking" string="Force Checking" | ||||
|  |                                 attrs="{'invisible': ['|',('state','!=','running'), | ||||
|  |                                 ('first_invoice_created','=',False)]}" type="object" class="oe_highlight"/> | ||||
|  |                         <button name="set_to_done" string="Set to Done" | ||||
|  |                                 states="invoice" type="object" class="oe_highlight"/> | ||||
|  |                         <field name="state" widget="statusbar" statusbar_visible="draft,running,done"/> | ||||
|  |                     </header> | ||||
|  |                     <sheet> | ||||
|  |                         <div class="oe_right oe_button_box" style="width: 300px;" name="buttons"> | ||||
|  |                             <button name='action_view_invoice' class="oe_stat_button" type="object" icon="fa-money"> | ||||
|  |                                 <field string="Invoice" name="invoice_count" widget="statinfo" /> | ||||
|  |                             </button> | ||||
|  |                         </div> | ||||
|  |                         <field name="image_medium" widget='image' class="oe_avatar"/> | ||||
|  |                         <div class="oe_title"> | ||||
|  |                             <h1> | ||||
|  |                                 <field name="name"/> | ||||
|  |                             </h1> | ||||
|  |                         </div> | ||||
|  |                         <group> | ||||
|  |                             <separator string="Contract Details " colspan="4" /> | ||||
|  |                             <group> | ||||
|  |                                 <field name="customer_id"  string="Customer" attrs="{'readonly': [('state','!=','draft')]}"/> | ||||
|  |                                 <field name="rent_start_date" attrs="{'readonly': [('state','!=','draft')]}"/> | ||||
|  |                                 <field name="rent_end_date" attrs="{'readonly': [('state','!=','draft')]}"/> | ||||
|  |                                 <field name="vehicle_id" domain="[('rental_check_availability','=',True), | ||||
|  |                                 ('state_id.name','!=','Inactive')]" | ||||
|  |                                    options="{'no_create': True}"/> | ||||
|  |                                 <field name="journal_type" invisible="1" /> | ||||
|  |                                 <field name="check_verify" invisible="1" /> | ||||
|  |                                 <field name="sales_person" attrs="{'readonly': [('state','!=','draft')]}"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="car_brand"/> | ||||
|  |                                 <field name="car_color"/> | ||||
|  |                                 <field name="first_invoice_created" invisible="1"/> | ||||
|  |                                 <label for="first_payment"/> | ||||
|  |                                 <div> | ||||
|  |                                     <field name="first_payment" class="oe_inline" | ||||
|  |                                          attrs="{'readonly': ['|', ('state','not in',('draft', 'running')), | ||||
|  |                                                 ('first_invoice_created','=',True)]}"/> | ||||
|  |                                     <field name="first_payment_inv" style="width:142px;" readonly="1"/> | ||||
|  |                                 </div> | ||||
|  |                                 <field name="account_type" invisible="1"/> | ||||
|  |                                 <field name="cost" invisible="1"/> | ||||
|  |                                 <label for="cost_generated"/> | ||||
|  |                                     <div> | ||||
|  |                                         <field name="cost_frequency" class="oe_inline" | ||||
|  |                                                attrs="{'readonly': [('state','!=','draft')]}"/> | ||||
|  |                                         <field name="cost_generated" style="width:142px;" | ||||
|  |                                                attrs="{'invisible': [('cost_frequency','=','no')], | ||||
|  |                                                        'readonly': [('state','!=','draft')], | ||||
|  |                                                        'required': [('cost_frequency','not in',[None,False,'no'])]}"/> | ||||
|  |                                     </div> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                         <notebook> | ||||
|  |                             <page string="Recurring Invoices" attrs="{'invisible': [('cost_frequency','in',[None,False,'no'])]}"> | ||||
|  |                                 <field name="recurring_line" mode="tree"> | ||||
|  |                                     <tree string="Fleet Reccurring Lines" | ||||
|  |                                           colors="#0b7a35:payment_info=='paid';#f20b07:payment_info!='paid'"> | ||||
|  |                                         <field name="date_today"/> | ||||
|  |                                         <field name="date_due"/> | ||||
|  |                                         <field name="name"/> | ||||
|  |                                         <field name="account_info"/> | ||||
|  |                                         <field name="recurring_amount"/> | ||||
|  |                                         <field name="payment_info"/> | ||||
|  |                                         <field name="invoice_ref"/> | ||||
|  |                                     </tree> | ||||
|  |                                 </field> | ||||
|  |                             </page> | ||||
|  |                             <page string="Checklist"> | ||||
|  |                                 <group> | ||||
|  |                                     <group> | ||||
|  |                                         <field name="attachment_ids" widget="many2many_binary" class="oe_inline"/> | ||||
|  |                                     </group> | ||||
|  |                                     <group> | ||||
|  |                                         <field name="damage_cost" attrs="{'invisible': [('state','!=','checking')]}"/> | ||||
|  |                                     </group> | ||||
|  |                                 </group> | ||||
|  |                                 <field name="checklist_line"> | ||||
|  |                                     <tree string="Fleet Checklist Lines" editable="bottom"> | ||||
|  |                                         <field name="name"/> | ||||
|  |                                         <field name="checklist_active"/> | ||||
|  |                                         <field name="checklist_number" invisible="True"/> | ||||
|  |                                         <field name="price"/> | ||||
|  |                                     </tree> | ||||
|  |                                     <form> | ||||
|  |                                         <sheet> | ||||
|  |                                             <group> | ||||
|  |                                                 <field name="name"/> | ||||
|  |                                                 <field name="checklist_active" invisible="1"/> | ||||
|  |                                                 <field name="checklist_number" invisible="1"/> | ||||
|  |                                             </group> | ||||
|  |                                         </sheet> | ||||
|  |                                     </form> | ||||
|  |                                 </field> | ||||
|  |                                 <div> | ||||
|  |                                     <group class="oe_subtotal_footer oe_right"> | ||||
|  |                                         <field name="total"/> | ||||
|  |                                         <field name="tools_missing_cost"/> | ||||
|  |                                         <field name="damage_cost_sub"/> | ||||
|  |                                         <field name="total_cost" class="oe_subtotal_footer_separator"/> | ||||
|  |                                     </group> | ||||
|  |                                 </div> | ||||
|  |                                 <div style="float: right;margin-left: 78%;margin-bottom: 36px;"> | ||||
|  |                                     <button name="action_verify" string="Verify" type="object" | ||||
|  |                                             style="width: 100px !important;height: 40px;" | ||||
|  |                                             attrs="{'invisible': [('state', '!=', 'checking')]}" | ||||
|  |                                             class="oe_subtotal_footer oe_right oe_highlight"/> | ||||
|  |                                 </div> | ||||
|  |                             </page> | ||||
|  |                         </notebook> | ||||
|  |                         <group> | ||||
|  |                           <field name="notes"/> | ||||
|  |                         </group> | ||||
|  |                     </sheet> | ||||
|  |                     <div class="oe_chatter"> | ||||
|  |                         <field name="message_follower_ids" widget="mail_followers"/> | ||||
|  |                         <field name="message_ids" widget="mail_thread"/> | ||||
|  |                     </div> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record model="ir.ui.view" id="car_contract_tree_view"> | ||||
|  |             <field name="name">car_contract_tree_view.tree</field> | ||||
|  |             <field name="model">car.rental.contract</field> | ||||
|  |             <field name="type">tree</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <tree string="car_contract_result" decoration-info="state == 'draft'" colors="grey:state == 'done'; | ||||
|  |                               green:state == 'running';red:state == 'checking';black:state == 'invoice';"> | ||||
|  |                     <field name="name"/> | ||||
|  |                     <field name="customer_id" string="Customer"/> | ||||
|  | 			        <field name="vehicle_id"/> | ||||
|  |                     <field name="cost"/> | ||||
|  |                     <field name="car_brand" /> | ||||
|  | 					<field name="car_color" /> | ||||
|  |                     <field name="rent_start_date"/> | ||||
|  |                     <field name="rent_end_date"/> | ||||
|  |                     <field name="state"/> | ||||
|  |                 </tree> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="action_car_rental_contract" model="ir.actions.act_window"> | ||||
|  |             <field name="name">Rental Contract</field> | ||||
|  |             <field name="res_model">car.rental.contract</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_mode">tree,form</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <menuitem name="Fleet Rental" id="fleet.menu_root" sequence="115" groups="fleet.fleet_group_user" | ||||
|  |                   web_icon="fleet,static/description/icon.png"/> | ||||
|  |         <menuitem id="menu_car_parent" sequence="1" name="Rental Management" parent="fleet.menu_root"/> | ||||
|  |         <menuitem id="menu_car_rental_contract" parent="menu_car_parent" name="Rental Contract" | ||||
|  |                   action="action_car_rental_contract" sequence="1"/> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,216 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8" ?> | ||||
|  | <odoo> | ||||
|  |     <data noupdate="1"> | ||||
|  |         <record id="sequence_car_rental" model="ir.sequence"> | ||||
|  |             <field name="name">Car Rental Sequence</field> | ||||
|  |             <field name="code">car.rental.sequence</field> | ||||
|  |             <field name="prefix">RENT/%(range_year)s/</field> | ||||
|  |             <field eval="1" name="number_next"/> | ||||
|  |             <field eval="1" name="number_increment"/> | ||||
|  |             <field eval="True" name="use_date_range"/> | ||||
|  |             <field name="padding">4</field> | ||||
|  |         </record> | ||||
|  |     </data> | ||||
|  | 
 | ||||
|  |     <data> | ||||
|  |         <record id="cron_scheduler_for_fleet" model="ir.cron"> | ||||
|  |             <field name="name">Fleet scheduler</field> | ||||
|  |             <field name="user_id" ref="base.user_root"/> | ||||
|  |             <field name="interval_number">1</field> | ||||
|  |             <field name="interval_type">days</field> | ||||
|  |             <field name="numbercall">-1</field> | ||||
|  |             <field eval="False" name="doall"/> | ||||
|  |             <field eval="'car.rental.contract'" name="model"/> | ||||
|  |             <field eval="'fleet_scheduler'" name="function"/> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record model="ir.ui.view" id="rental_fleet_vehicle_inherit_form_view"> | ||||
|  |             <field name="name">fleet.vehicle.form.inherit.view</field> | ||||
|  |             <field name="model">fleet.vehicle</field> | ||||
|  |             <field name="inherit_id" ref="fleet.fleet_vehicle_view_form"/> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <field name="car_value" position="after"> | ||||
|  |                     <field name="rental_check_availability" invisible="1"/> | ||||
|  |                     <field name="rental_reserved_time" invisible="1"/> | ||||
|  |                 </field> | ||||
|  |                 <field name="color" position="replace"> | ||||
|  |                     <field name="color" widget="color"/> | ||||
|  |                 </field> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="car_rental_contract_form_view" model="ir.ui.view"> | ||||
|  |             <field name="name">car.contract.result.form</field> | ||||
|  |             <field name="model">car.rental.contract</field> | ||||
|  |             <field name="type">form</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="car_result"> | ||||
|  |                     <header> | ||||
|  |                         <button name="action_confirm" string="Confirm" type="object" | ||||
|  |                                 attrs="{'invisible': [('state', '!=', 'draft')]}" class="oe_highlight"/> | ||||
|  |                         <button name="action_run" string="Run" type="object" | ||||
|  |                                 attrs="{'invisible': [('state', '!=', 'reserved')]}" class="oe_highlight"/> | ||||
|  |                         <button name="action_cancel" string="Cancel" type="object" | ||||
|  |                                 attrs="{'invisible': [('state', 'not in', ('draft', 'reserved'))]}" class="oe_highlight"/> | ||||
|  |                         <button name="action_invoice_create" string="Create Invoice" | ||||
|  |                                 attrs="{'invisible': ['|',('state', '!=', 'running'), | ||||
|  |                                 ('first_invoice_created','=',True)]}" type="object" class="oe_highlight"/> | ||||
|  |                         <button name="force_checking" string="Force Checking" | ||||
|  |                                 attrs="{'invisible': ['|',('state','!=','running'), | ||||
|  |                                 ('first_invoice_created','=',False)]}" type="object" class="oe_highlight"/> | ||||
|  |                         <button name="set_to_done" string="Set to Done" | ||||
|  |                                 states="invoice" type="object" class="oe_highlight"/> | ||||
|  |                         <field name="state" widget="statusbar" statusbar_visible="draft,running,done"/> | ||||
|  |                     </header> | ||||
|  |                     <sheet> | ||||
|  |                         <div class="oe_right oe_button_box" style="width: 300px;" name="buttons"> | ||||
|  |                             <button name='action_view_invoice' class="oe_stat_button" type="object" icon="fa-money"> | ||||
|  |                                 <field string="Invoice" name="invoice_count" widget="statinfo" /> | ||||
|  |                             </button> | ||||
|  |                         </div> | ||||
|  |                         <field name="image_medium" widget='image' class="oe_avatar"/> | ||||
|  |                         <div class="oe_title"> | ||||
|  |                             <h1> | ||||
|  |                                 <field name="name"/> | ||||
|  |                             </h1> | ||||
|  |                         </div> | ||||
|  |                         <group> | ||||
|  |                             <separator string="Contract Details " colspan="4" /> | ||||
|  |                             <group> | ||||
|  |                                 <field name="customer_id"  string="Customer" attrs="{'readonly': [('state','!=','draft')]}"/> | ||||
|  |                                 <field name="rent_start_date" attrs="{'readonly': [('state','!=','draft')]}"/> | ||||
|  |                                 <field name="rent_end_date" attrs="{'readonly': [('state','!=','draft')]}"/> | ||||
|  |                                 <field name="vehicle_id" domain="[('rental_check_availability','=',True), | ||||
|  |                                 ('state_id.name','!=','Inactive')]" | ||||
|  |                                    options="{'no_create': True}"/> | ||||
|  |                                 <field name="journal_type" invisible="1" /> | ||||
|  |                                 <field name="check_verify" invisible="1" /> | ||||
|  |                                 <field name="sales_person" attrs="{'readonly': [('state','!=','draft')]}"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="car_brand"/> | ||||
|  |                                 <field name="car_color"/> | ||||
|  |                                 <field name="first_invoice_created" invisible="1"/> | ||||
|  |                                 <label for="first_payment"/> | ||||
|  |                                 <div> | ||||
|  |                                     <field name="first_payment" class="oe_inline" | ||||
|  |                                          attrs="{'readonly': ['|', ('state','not in',('draft', 'running')), | ||||
|  |                                                 ('first_invoice_created','=',True)]}"/> | ||||
|  |                                     <field name="first_payment_inv" style="width:142px;" readonly="1"/> | ||||
|  |                                 </div> | ||||
|  |                                 <field name="account_type" invisible="1"/> | ||||
|  |                                 <field name="cost" invisible="1"/> | ||||
|  |                                 <label for="cost_generated"/> | ||||
|  |                                     <div> | ||||
|  |                                         <field name="cost_frequency" class="oe_inline" | ||||
|  |                                                attrs="{'readonly': [('state','!=','draft')]}"/> | ||||
|  |                                         <field name="cost_generated" style="width:142px;" | ||||
|  |                                                attrs="{'invisible': [('cost_frequency','=','no')], | ||||
|  |                                                        'readonly': [('state','!=','draft')], | ||||
|  |                                                        'required': [('cost_frequency','not in',[None,False,'no'])]}"/> | ||||
|  |                                     </div> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                         <notebook> | ||||
|  |                             <page string="Recurring Invoices" attrs="{'invisible': [('cost_frequency','in',[None,False,'no'])]}"> | ||||
|  |                                 <field name="recurring_line" mode="tree"> | ||||
|  |                                     <tree string="Fleet Reccurring Lines" | ||||
|  |                                           colors="#0b7a35:payment_info=='paid';#f20b07:payment_info!='paid'"> | ||||
|  |                                         <field name="date_today"/> | ||||
|  |                                         <field name="date_due"/> | ||||
|  |                                         <field name="name"/> | ||||
|  |                                         <field name="account_info"/> | ||||
|  |                                         <field name="recurring_amount"/> | ||||
|  |                                         <field name="payment_info"/> | ||||
|  |                                         <field name="invoice_ref"/> | ||||
|  |                                     </tree> | ||||
|  |                                 </field> | ||||
|  |                             </page> | ||||
|  |                             <page string="Checklist"> | ||||
|  |                                 <group> | ||||
|  |                                     <group> | ||||
|  |                                         <field name="attachment_ids" widget="many2many_binary" class="oe_inline"/> | ||||
|  |                                     </group> | ||||
|  |                                     <group> | ||||
|  |                                         <field name="damage_cost" attrs="{'invisible': [('state','!=','checking')]}"/> | ||||
|  |                                     </group> | ||||
|  |                                 </group> | ||||
|  |                                 <field name="checklist_line"> | ||||
|  |                                     <tree string="Fleet Checklist Lines" editable="bottom"> | ||||
|  |                                         <field name="name"/> | ||||
|  |                                         <field name="checklist_active"/> | ||||
|  |                                         <field name="checklist_number" invisible="True"/> | ||||
|  |                                         <field name="price"/> | ||||
|  |                                     </tree> | ||||
|  |                                     <form> | ||||
|  |                                         <sheet> | ||||
|  |                                             <group> | ||||
|  |                                                 <field name="name"/> | ||||
|  |                                                 <field name="checklist_active" invisible="1"/> | ||||
|  |                                                 <field name="checklist_number" invisible="1"/> | ||||
|  |                                             </group> | ||||
|  |                                         </sheet> | ||||
|  |                                     </form> | ||||
|  |                                 </field> | ||||
|  |                                 <div> | ||||
|  |                                     <group class="oe_subtotal_footer oe_right"> | ||||
|  |                                         <field name="total"/> | ||||
|  |                                         <field name="tools_missing_cost"/> | ||||
|  |                                         <field name="damage_cost_sub"/> | ||||
|  |                                         <field name="total_cost" class="oe_subtotal_footer_separator"/> | ||||
|  |                                     </group> | ||||
|  |                                 </div> | ||||
|  |                                 <div style="float: right;margin-left: 78%;margin-bottom: 36px;"> | ||||
|  |                                     <button name="action_verify" string="Verify" type="object" | ||||
|  |                                             style="width: 100px !important;height: 40px;" | ||||
|  |                                             attrs="{'invisible': [('state', '!=', 'checking')]}" | ||||
|  |                                             class="oe_subtotal_footer oe_right oe_highlight"/> | ||||
|  |                                 </div> | ||||
|  |                             </page> | ||||
|  |                         </notebook> | ||||
|  |                         <group> | ||||
|  |                           <field name="notes"/> | ||||
|  |                         </group> | ||||
|  |                     </sheet> | ||||
|  |                     <div class="oe_chatter"> | ||||
|  |                         <field name="message_follower_ids" widget="mail_followers"/> | ||||
|  |                         <field name="message_ids" widget="mail_thread"/> | ||||
|  |                     </div> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record model="ir.ui.view" id="car_contract_tree_view"> | ||||
|  |             <field name="name">car_contract_tree_view.tree</field> | ||||
|  |             <field name="model">car.rental.contract</field> | ||||
|  |             <field name="type">tree</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <tree string="car_contract_result" decoration-info="state == 'draft'" colors="grey:state == 'done'; | ||||
|  |                               green:state == 'running';red:state == 'checking';black:state == 'invoice';"> | ||||
|  |                     <field name="name"/> | ||||
|  |                     <field name="customer_id" string="Customer"/> | ||||
|  | 			        <field name="vehicle_id"/> | ||||
|  |                     <field name="cost"/> | ||||
|  |                     <field name="car_brand" /> | ||||
|  | 					<field name="car_color" /> | ||||
|  |                     <field name="rent_start_date"/> | ||||
|  |                     <field name="rent_end_date"/> | ||||
|  |                     <field name="state"/> | ||||
|  |                 </tree> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="action_car_rental_contract" model="ir.actions.act_window"> | ||||
|  |             <field name="name">Rental Contract</field> | ||||
|  |             <field name="res_model">car.rental.contract</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_mode">tree,form</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <menuitem name="Fleet Rental" id="fleet.menu_root" sequence="115" groups="fleet.fleet_group_user" | ||||
|  |                   web_icon="fleet,static/description/icon.png"/> | ||||
|  |         <menuitem id="menu_car_parent" sequence="1" name="Rental Management" parent="fleet.menu_root"/> | ||||
|  |         <menuitem id="menu_car_rental_contract" parent="menu_car_parent" name="Rental Contract" | ||||
|  |                   action="action_car_rental_contract" sequence="1"/> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,46 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8" ?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  |         <record id="car_rental_contract_tools_form_view" model="ir.ui.view"> | ||||
|  |             <field name="name">car_rental_contract_tools_form_view.form</field> | ||||
|  |             <field name="model">car.tools</field> | ||||
|  |             <field name="type">form</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="Accessories/Tools"> | ||||
|  |                     <sheet> | ||||
|  |                         <group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="name"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="price"/> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                     </sheet> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="car_rental_contract_tools_tree_view" model="ir.ui.view"> | ||||
|  |             <field name="name">car_rental_contract_tools_tree_view.tree</field> | ||||
|  |             <field name="model">car.tools</field> | ||||
|  |             <field name="type">tree</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <tree string="Accessories/Tools"> | ||||
|  |                     <field name="name"/> | ||||
|  |                     <field name="price"/> | ||||
|  |                 </tree> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="action_fleet_car_tools" model="ir.actions.act_window"> | ||||
|  |             <field name="name">Accessories/Tools</field> | ||||
|  |             <field name="res_model">car.tools</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_mode">tree,form</field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <menuitem id="menu_car_tools" parent="menu_car_parent" name="Accessories/Tools" | ||||
|  |                   action="action_fleet_car_tools" sequence="3"/> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,91 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8" ?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  |         <record id="car_rental_contract_checklist_form_view" model="ir.ui.view"> | ||||
|  |             <field name="name">car_rental_contract_checklist_form_view.form</field> | ||||
|  |             <field name="model">car.rental.contract</field> | ||||
|  |             <field name="type">form</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="car_checklist2" create="false"> | ||||
|  |                     <header> | ||||
|  |                         <button name="action_verify" string="Create invoice" type="object" | ||||
|  |                                 attrs="{'invisible': ['|',('state','!=', 'checking'),('check_verify','=',True)]}" class="oe_highlight"/> | ||||
|  |                         <field name="state" widget="statusbar" statusbar_visible="checking"/> | ||||
|  |                     </header> | ||||
|  |                     <sheet> | ||||
|  |                         <group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="name" string="Contract" readonly="1"/> | ||||
|  |                                 <field name="customer_id" string="Customer" readonly="1"/> | ||||
|  |                                 <field name="vehicle_id" string="Vehicle" readonly="1"/> | ||||
|  |                                 <field name="check_verify" invisible="1"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="damage_cost"/> | ||||
|  |                                 <field name="attachment_ids" widget="many2many_binary" class="oe_inline" readonly="1"/> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                         <notebook> | ||||
|  |                             <page string="Checklist"> | ||||
|  |                                 <field name="checklist_line"> | ||||
|  |                                     <tree string="Fleet Checklist Lines" create="false" editable="bottom"> | ||||
|  |                                         <field name="name"/> | ||||
|  |                                         <field name="checklist_active"/> | ||||
|  |                                         <field name="price"/> | ||||
|  |                                     </tree> | ||||
|  |                                 </field> | ||||
|  |                                 <div> | ||||
|  |                                     <group class="oe_subtotal_footer oe_right"> | ||||
|  |                                         <field name="total"/> | ||||
|  |                                         <field name="tools_missing_cost"/> | ||||
|  |                                         <field name="damage_cost_sub"/> | ||||
|  |                                         <field name="total_cost" class="oe_subtotal_footer_separator"/> | ||||
|  |                                     </group> | ||||
|  |                                 </div> | ||||
|  |                             </page> | ||||
|  |                         </notebook> | ||||
|  |                     </sheet> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="car_rental_contract_checklist_tree_view" model="ir.ui.view"> | ||||
|  |             <field name="name">car_rental_contract_checklist_tree_view.tree</field> | ||||
|  |             <field name="model">car.rental.contract</field> | ||||
|  |             <field name="type">tree</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <tree string="car_contract_result2" create="false" colors="#f20b07:state=='checking';green:state=='running'" decoration-info="state == 'draft'"> | ||||
|  |                     <field name="name" string="Contract"/> | ||||
|  |                     <field name="customer_id" string="Renter"/> | ||||
|  |                     <field name="state"/> | ||||
|  |                 </tree> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="action_fleet_rent_checklist" model="ir.actions.act_window"> | ||||
|  |             <field name="name">Checklist</field> | ||||
|  |             <field name="res_model">car.rental.contract</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_mode">tree,form</field> | ||||
|  |             <field name="domain">[('state', 'in', ('running', 'checking'))]</field> | ||||
|  |             <field name="view_id" ref="car_rental_contract_checklist_form_view"/> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |          <record id="action_fleet_rent_checklist_form" model="ir.actions.act_window.view"> | ||||
|  |             <field eval="2" name="sequence"/> | ||||
|  |             <field name="view_mode">form</field> | ||||
|  |             <field name="view_id" ref="car_rental_contract_checklist_form_view"/> | ||||
|  |             <field name="act_window_id" ref="action_fleet_rent_checklist"/> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="action_fleet_rent_checklist_tree" model="ir.actions.act_window.view"> | ||||
|  |             <field eval="1" name="sequence"/> | ||||
|  |             <field name="view_mode">tree</field> | ||||
|  |             <field name="view_id" ref="car_rental_contract_checklist_tree_view"/> | ||||
|  |             <field name="act_window_id" ref="action_fleet_rent_checklist"/> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <menuitem id="menu_car_checklist" parent="menu_car_parent" name="Checklist" | ||||
|  |                   action="action_fleet_rent_checklist" sequence="2"/> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,22 @@ | |||||
|  | =========================== | ||||
|  | Front Office Management v11 | ||||
|  | =========================== | ||||
|  | 
 | ||||
|  | Helps You To Manage Front Office Operations. | ||||
|  | 
 | ||||
|  | Installation | ||||
|  | ============ | ||||
|  | 
 | ||||
|  | Just install the module. | ||||
|  | 
 | ||||
|  | Configuration | ||||
|  | ============= | ||||
|  | 
 | ||||
|  | Nothing to configure. | ||||
|  | 
 | ||||
|  | Credits | ||||
|  | ======= | ||||
|  | Anusha P P @ cybrosys, anusha@cybrosys.in | ||||
|  | Niyas Raphy @ cybrosys, niyas@cybrosys.in | ||||
|  | 
 | ||||
|  | 
 | ||||
| @ -0,0 +1,25 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | 
 | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Anusha P P(<https://www.cybrosys.com>) | ||||
|  | #    you can modify it under the terms of the GNU LESSER | ||||
|  | #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | ||||
|  | # | ||||
|  | #    It is forbidden to publish, distribute, sublicense, or sell copies | ||||
|  | #    of the Software or modified copies of the Software. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | ||||
|  | #    GENERAL PUBLIC LICENSE (LGPL v3) along with this program. | ||||
|  | #    If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from . import models | ||||
| @ -0,0 +1,49 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################# | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Anusha P P(<https://www.cybrosys.com>) | ||||
|  | #    you can modify it under the terms of the GNU LESSER | ||||
|  | #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | ||||
|  | # | ||||
|  | #    It is forbidden to publish, distribute, sublicense, or sell copies | ||||
|  | #    of the Software or modified copies of the Software. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | ||||
|  | #    GENERAL PUBLIC LICENSE (LGPL v3) along with this program. | ||||
|  | #    If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################# | ||||
|  | { | ||||
|  |     'name': "Front Office Management", | ||||
|  |     'version': '12.0.1.0.0', | ||||
|  |     'summary': """Manage Front Office Operations:Visitors, Devices Carrying Register, Actions""", | ||||
|  |     'description': """Helps You To Manage Front Office Operations""", | ||||
|  |     'author': "Cybrosys Techno Solutions", | ||||
|  |     'maintainer': 'Cybrosys Techno Solutions', | ||||
|  |     'company': "Cybrosys Techno Solutions", | ||||
|  |     'website': "https://www.cybrosys.com", | ||||
|  |     'category': 'Industries', | ||||
|  |     'depends': ['base', 'hr'], | ||||
|  |     'data': [ | ||||
|  |         'views/fo_visit.xml', | ||||
|  |         'views/fo_visitor.xml', | ||||
|  |         'views/fo_property_counter.xml', | ||||
|  |         'report/report.xml', | ||||
|  |         'report/fo_property_label.xml', | ||||
|  |         'report/fo_visitor_label.xml', | ||||
|  |         'report/visitors_report.xml', | ||||
|  |         'security/fo_security.xml', | ||||
|  |         'security/ir.model.access.csv', | ||||
|  |     ], | ||||
|  |     'images': ['static/description/banner.jpg'], | ||||
|  |     'license': 'AGPL-3', | ||||
|  |     'installable': True, | ||||
|  |     'auto_install': False, | ||||
|  | } | ||||
| @ -0,0 +1,33 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | 
 | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Anusha P P(<https://www.cybrosys.com>) | ||||
|  | #    you can modify it under the terms of the GNU LESSER | ||||
|  | #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | ||||
|  | # | ||||
|  | #    It is forbidden to publish, distribute, sublicense, or sell copies | ||||
|  | #    of the Software or modified copies of the Software. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | ||||
|  | #    GENERAL PUBLIC LICENSE (LGPL v3) along with this program. | ||||
|  | #    If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from . import fo_visitor | ||||
|  | from . import fo_property_counter | ||||
|  | from . import fo_visit | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
| @ -0,0 +1,59 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Maintainer: Cybrosys Technologies (<https://www.cybrosys.com>) | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | from odoo import models, fields, api,_ | ||||
|  | from odoo.exceptions import UserError | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class VisitDetails(models.Model): | ||||
|  |     _name = 'fo.property.counter' | ||||
|  |     _inherit = 'mail.thread' | ||||
|  |     _rec_name = 'employee' | ||||
|  |     _description = 'Property Details' | ||||
|  | 
 | ||||
|  |     employee = fields.Many2one('hr.employee',  string="Employee", required=True) | ||||
|  |     date = fields.Date(string="Date", required=True) | ||||
|  |     visitor_belongings = fields.One2many('fo.belongings', 'belongings_id_fov_employee', string="Personal Belongings", | ||||
|  |                                          copy=False) | ||||
|  |     state = fields.Selection([ | ||||
|  |         ('draft', 'Draft'), | ||||
|  |         ('prop_in', 'Taken In'), | ||||
|  |         ('prop_out', 'Taken out'), | ||||
|  |         ('cancel', 'Cancelled'), | ||||
|  |     ], track_visibility='onchange', default='draft', | ||||
|  |         help='If the employee taken the belongings to the company change state to ""Taken In""' | ||||
|  |              'when he/she leave office change the state to ""Taken out""') | ||||
|  | 
 | ||||
|  |     @api.one | ||||
|  |     def action_cancel(self): | ||||
|  |         self.state = "cancel" | ||||
|  | 
 | ||||
|  |     @api.one | ||||
|  |     def action_prop_in(self): | ||||
|  |         count = 0 | ||||
|  |         number = 0 | ||||
|  |         for data in self.visitor_belongings: | ||||
|  |             if not data.property_count: | ||||
|  |                 raise UserError(_('Please Add the Count.')) | ||||
|  |             if data.permission == '1': | ||||
|  |                 count += 1 | ||||
|  |             number = data.number | ||||
|  |         if number == count: | ||||
|  |             raise UserError(_('No property can be taken in.')) | ||||
|  |         else: | ||||
|  |             self.state = 'prop_in' | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def action_prop_out(self): | ||||
|  |         self.state = "prop_out" | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
| @ -0,0 +1,113 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Maintainer: Cybrosys Technologies (<https://www.cybrosys.com>) | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | import datetime | ||||
|  | from odoo import models, fields, api, _ | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class VisitDetails(models.Model): | ||||
|  |     _name = 'fo.visit' | ||||
|  |     _inherit = ['mail.thread'] | ||||
|  |     _description = 'Visit' | ||||
|  | 
 | ||||
|  |     name = fields.Char(string="sequence", default=lambda self: _('New')) | ||||
|  |     visitor = fields.Many2one("fo.visitor", string='Visitor') | ||||
|  |     phone = fields.Char(string="Phone", required=True) | ||||
|  |     email = fields.Char(string="Email", required=True) | ||||
|  |     reason = fields.Many2many('fo.purpose', string='Purpose Of Visit', required=True, | ||||
|  |                               help='Enter the reason for visit') | ||||
|  |     visitor_belongings = fields.One2many('fo.belongings', 'belongings_id_fov_visitor', string="Personal Belongings", | ||||
|  |                                          help='Add the belongings details here.') | ||||
|  |     check_in_date = fields.Datetime(string="Check In Time", help='Visitor check in time automatically' | ||||
|  |                                                                  ' fills when he checked in to the office.') | ||||
|  |     check_out_date = fields.Datetime(string="Check Out Time", help='Visitor check out time automatically ' | ||||
|  |                                                                    'fills when he checked out from the office.') | ||||
|  |     visiting_person = fields.Many2one('hr.employee',  string="Meeting With") | ||||
|  |     department = fields.Many2one('hr.department',  string="Department") | ||||
|  |     state = fields.Selection([ | ||||
|  |         ('draft', 'Draft'), | ||||
|  |         ('check_in', 'Checked In'), | ||||
|  |         ('check_out', 'Checked Out'), | ||||
|  |         ('cancel', 'Cancelled'), | ||||
|  |     ], track_visibility='onchange', default='draft') | ||||
|  | 
 | ||||
|  |     @api.model | ||||
|  |     def create(self, vals): | ||||
|  |         if vals: | ||||
|  |             vals['name'] = self.env['ir.sequence'].next_by_code('fo.visit') or _('New') | ||||
|  |             result = super(VisitDetails, self).create(vals) | ||||
|  |             return result | ||||
|  | 
 | ||||
|  |     @api.one | ||||
|  |     def action_cancel(self): | ||||
|  |         self.state = "cancel" | ||||
|  | 
 | ||||
|  |     @api.one | ||||
|  |     def action_check_in(self): | ||||
|  |         self.state = "check_in" | ||||
|  |         self.check_in_date = datetime.datetime.now() | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def action_check_out(self): | ||||
|  |         self.state = "check_out" | ||||
|  |         self.check_out_date = datetime.datetime.now() | ||||
|  | 
 | ||||
|  |     @api.onchange('visitor') | ||||
|  |     def visitor_details(self): | ||||
|  |         if self.visitor: | ||||
|  |             if self.visitor.phone: | ||||
|  |                 self.phone = self.visitor.phone | ||||
|  |             if self.visitor.email: | ||||
|  |                 self.email = self.visitor.email | ||||
|  | 
 | ||||
|  |     @api.onchange('visiting_person') | ||||
|  |     def get_employee_dpt(self): | ||||
|  |         if self.visiting_person: | ||||
|  |             self.department = self.visiting_person.department_id | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class PersonalBelongings(models.Model): | ||||
|  |     _name = 'fo.belongings' | ||||
|  | 
 | ||||
|  |     property_name = fields.Char(string="Property", help='Employee belongings name') | ||||
|  |     property_count = fields.Char(string="Count", help='Count of property') | ||||
|  |     number = fields.Integer(compute='get_number', store=True, string="Sl") | ||||
|  |     belongings_id_fov_visitor = fields.Many2one('fo.visit', string="Belongings") | ||||
|  |     belongings_id_fov_employee = fields.Many2one('fo.property.counter', string="Belongings") | ||||
|  |     permission = fields.Selection([ | ||||
|  |         ('0', 'Allowed'), | ||||
|  |         ('1', 'Not Allowed'), | ||||
|  |         ('2', 'Allowed With Permission'), | ||||
|  |         ], 'Permission', required=True, index=True, default='0', track_visibility='onchange') | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     @api.depends('belongings_id_fov_visitor', 'belongings_id_fov_employee') | ||||
|  |     def get_number(self): | ||||
|  |         for visit in self.mapped('belongings_id_fov_visitor'): | ||||
|  |             number = 1 | ||||
|  |             for line in visit.visitor_belongings: | ||||
|  |                 line.number = number | ||||
|  |                 number += 1 | ||||
|  |         for visit in self.mapped('belongings_id_fov_employee'): | ||||
|  |             number = 1 | ||||
|  |             for line in visit.visitor_belongings: | ||||
|  |                 line.number = number | ||||
|  |                 number += 1 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class VisitPurpose(models.Model): | ||||
|  |     _name = 'fo.purpose' | ||||
|  | 
 | ||||
|  |     name = fields.Char(string='Purpose', required=True, help='Meeting purpose in short term.eg:Meeting.') | ||||
|  |     description = fields.Text(string='Description Of Purpose', help='Description for the Purpose.') | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
| @ -0,0 +1,53 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Maintainer: Cybrosys Technologies (<https://www.cybrosys.com>) | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from odoo import models, fields, api | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class VisitorDetails(models.Model): | ||||
|  |     _name = 'fo.visitor' | ||||
|  | 
 | ||||
|  |     name = fields.Char(string="Visitor", required=True) | ||||
|  |     visitor_image = fields.Binary(string='Image', attachment=True) | ||||
|  |     street = fields.Char(string="Street") | ||||
|  |     street2 = fields.Char(string="Street2") | ||||
|  |     zip = fields.Char(change_default=True) | ||||
|  |     city = fields.Char() | ||||
|  |     state_id = fields.Many2one("res.country.state", string='State', ondelete='restrict') | ||||
|  |     country_id = fields.Many2one('res.country', string='Country', ondelete='restrict') | ||||
|  |     phone = fields.Char(string="Phone", required=True) | ||||
|  |     email = fields.Char(string="Email", required=True) | ||||
|  |     id_proof = fields.Many2one('id.proof', string="ID Proof") | ||||
|  |     id_proof_no = fields.Char(string="ID Number", help='Id proof number') | ||||
|  |     company_info = fields.Many2one('res.partner', string="Company", help='Visiting persons company details') | ||||
|  |     visit_count = fields.Integer(compute='_no_visit_count', string='# Visits') | ||||
|  | 
 | ||||
|  |     _sql_constraints = [ | ||||
|  |         ('field_uniq_email_and_id_proof', 'unique (email,id_proof)', "Please give the correct data !"), | ||||
|  |     ] | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def _no_visit_count(self): | ||||
|  |         data = self.env['fo.visit'].search([('visitor', '=', self.ids), ('state', '!=', 'cancel')]).ids | ||||
|  |         self.visit_count = len(data) | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class VisitorProof(models.Model): | ||||
|  |     _name = 'id.proof' | ||||
|  |     _rec_name = 'id_proof' | ||||
|  | 
 | ||||
|  |     id_proof = fields.Char(string="Name") | ||||
|  |     code = fields.Char(string="Code") | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
| @ -0,0 +1,57 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  |         <template id="report_property_label"> | ||||
|  |             <t t-call="web.html_container"> | ||||
|  |                 <t t-foreach="docs" t-as="o"> | ||||
|  |                     <t> | ||||
|  |                         <div class="page"> | ||||
|  |                             <div class="oe_structure"/> | ||||
|  |                             <div class="row"> | ||||
|  |                                 <div class="col-xs-2" style="margin:auto;"> | ||||
|  |                                 </div> | ||||
|  |                                 <center> | ||||
|  |                                     <div class="col-xs-8" style="margin:auto"> | ||||
|  |                                         <table class="table table-condensed" style="border: 3px solid black !important;"> | ||||
|  |                                             <tr> | ||||
|  |                                                 <td width="100%"> | ||||
|  |                                                     <p style="text-align:center;padding-top:10px;"> | ||||
|  |                                                         <img t-if="not o.employee.image" t-att-src="'/web/static/src/img/placeholder.png'" height="120" border="1" width="120"/> | ||||
|  |                                                         <img t-if="o.employee.image" t-att-src="'data:image/png;base64,%s' % o.employee.image" height="120" border="1" width="120"/> | ||||
|  |                                                     </p> | ||||
|  |                                                     <p style="text-align:center;"> | ||||
|  |                                                        Name : <strong><span t-field="o.employee.name"/></strong> | ||||
|  |                                                     </p> | ||||
|  |                                                     <p style="text-align:center;"> | ||||
|  |                                                        Department : <strong><span t-field="o.employee.department_id.name"/></strong> | ||||
|  |                                                     </p> | ||||
|  |                                                     <h4 style="margin-left:50px"><b>Personal Belongings</b></h4> | ||||
|  |                                                      <table width="90%" style="border:1px solid black;margin-left:50px"> | ||||
|  |                                                          <thead> | ||||
|  |                                                             <th  style="border:1px solid black;" width="13%" >Name</th> | ||||
|  |                                                             <th  style="border:1px solid black;" width="13%" >Count</th> | ||||
|  |                                                         </thead> | ||||
|  |                                                         <tbody> | ||||
|  |                                                             <t t-foreach="o.visitor_belongings" t-as="l"> | ||||
|  |                                                                 <t t-if="l.permission=='1'"> | ||||
|  |                                                                     <tr> | ||||
|  |                                                                         <td style="border:1px solid black;"><span t-esc="l.property_name" style="font-size:16px;"/></td> | ||||
|  |                                                                         <td style="border:1px solid black;"><span t-esc="l.property_count" style="font-size:16px;"/></td> | ||||
|  |                                                                     </tr> | ||||
|  |                                                                 </t> | ||||
|  |                                                             </t> | ||||
|  |                                                         </tbody> | ||||
|  |                                                      </table> | ||||
|  |                                                 </td> | ||||
|  |                                             </tr> | ||||
|  |                                         </table> | ||||
|  |                                     </div> | ||||
|  |                                 </center> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </t> | ||||
|  |                 </t> | ||||
|  |             </t> | ||||
|  |         </template> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,69 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  |         <template id="report_visitor_label"> | ||||
|  |             <t t-call="web.html_container"> | ||||
|  |                 <t t-call="web.external_layout"> | ||||
|  |                 <t t-foreach="docs" t-as="o"> | ||||
|  |                     <t> | ||||
|  |                         <div class="page"> | ||||
|  |                             <div class="oe_structure"/> | ||||
|  |                             <div class="row"> | ||||
|  |                                 <div class="col-xs-2" style="margin:auto;"> | ||||
|  |                                 </div> | ||||
|  |                                 <center> | ||||
|  |                                     <div class="col-xs-8" style="margin:auto"> | ||||
|  |                                         <table class="table table-condensed" style="border: 3px solid black !important;"> | ||||
|  |                                             <tr> | ||||
|  |                                                 <td width="40%"> | ||||
|  |                                                     <p style="text-align:center;padding-top:10px;"> | ||||
|  |                                                         <img t-if="not o.visitor.visitor_image" t-att-src="'/web/static/src/img/placeholder.png'" height="120" border="1" width="120"/> | ||||
|  |                                                         <img t-if="o.visitor.visitor_image" t-att-src="'data:image/png;base64,%s' % o.visitor.visitor_image" height="120" border="1" width="120"/> | ||||
|  |                                                     </p> | ||||
|  |                                                     <p style="text-align:center;"> | ||||
|  |                                                         <strong><span t-field="o.visitor"/></strong> | ||||
|  |                                                     </p> | ||||
|  |                                                 </td> | ||||
|  |                                                 <td width="60%"> | ||||
|  |                                                     <table> | ||||
|  |                                                         <tr> | ||||
|  |                                                             <t t-if="o.visiting_person"> | ||||
|  |                                                                 <td> | ||||
|  |                                                                     <p style="text-align:right;padding-top:10px;"><strong>Visitor ID : </strong></p> | ||||
|  |                                                                     <p style="text-align:right;"><strong>Phone: </strong></p> | ||||
|  |                                                                     <t t-if="o.visiting_person"><p style="text-align:right;"><strong>Meeting With : </strong></p></t> | ||||
|  |                                                                     <t t-if="o.visiting_person"><p style="text-align:right;"><strong>Department : </strong></p></t> | ||||
|  |                                                                 </td> | ||||
|  |                                                                 <td> | ||||
|  |                                                                     <p style="text-align:left;padding-top:10px;padding-left:10px;" t-field="o.name"/> | ||||
|  |                                                                     <p style="text-align:left;padding-left:10px;" t-field="o.phone"/> | ||||
|  |                                                                     <t t-if="o.visiting_person"><p style="text-align:left;padding-left:10px;" t-field="o.visiting_person"/></t> | ||||
|  |                                                                     <t t-if="o.visiting_person"><p style="text-align:left;padding-left:10px;" t-field="o.department"/></t> | ||||
|  |                                                                 </td> | ||||
|  |                                                             </t> | ||||
|  |                                                             <t t-if="not o.visiting_person"> | ||||
|  |                                                                 <td> | ||||
|  |                                                                     <p style="text-align:right;padding-top:30px;"><strong>Visitor ID : </strong></p> | ||||
|  |                                                                     <p style="text-align:right;"><strong>Phone: </strong></p> | ||||
|  |                                                                 </td> | ||||
|  |                                                                 <td> | ||||
|  |                                                                     <p style="text-align:left;padding-top:30px;padding-left:30px;" t-field="o.visitor"/> | ||||
|  |                                                                     <p style="text-align:left;padding-left:30px;" t-field="o.phone"/> | ||||
|  |                                                                 </td> | ||||
|  |                                                             </t> | ||||
|  |                                                         </tr> | ||||
|  |                                                     </table> | ||||
|  |                                                 </td> | ||||
|  |                                             </tr> | ||||
|  |                                         </table> | ||||
|  |                                     </div> | ||||
|  |                                 </center> | ||||
|  |                             </div> | ||||
|  |                         </div> | ||||
|  |                     </t> | ||||
|  |                 </t> | ||||
|  |                 </t> | ||||
|  |             </t> | ||||
|  |         </template> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,32 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  | 
 | ||||
|  |         <report | ||||
|  |             string="Visitor Pass" | ||||
|  |             id="action_print_visit_card" | ||||
|  |             model="fo.visit" | ||||
|  |             report_type="qweb-pdf" | ||||
|  |             name="front_office_management.report_visitor_label" | ||||
|  |             file="front_office_management.report_visitor_label" | ||||
|  |         /> | ||||
|  |         <report | ||||
|  |             string="Visitors Report" | ||||
|  |             id="action_print_visit_report" | ||||
|  |             model="fo.visit" | ||||
|  |             report_type="qweb-pdf" | ||||
|  |             name="front_office_management.report_visitor_report" | ||||
|  |             file="front_office_management.report_visitor_report" | ||||
|  |         /> | ||||
|  | 
 | ||||
|  |         <report | ||||
|  |             string="Property Label" | ||||
|  |             id="action_print_property_label" | ||||
|  |             model="fo.property.counter" | ||||
|  |             report_type="qweb-pdf" | ||||
|  |             name="front_office_management.report_property_label" | ||||
|  |             file="front_office_management.report_property_label" | ||||
|  |         /> | ||||
|  | 
 | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,64 @@ | |||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  |         <template id="report_visitor_report"> | ||||
|  |              <t t-call="web.html_container"> | ||||
|  |                  <t t-foreach="docs" t-as="o"> | ||||
|  |                      <t t-call="web.external_layout"> | ||||
|  |                          <div class="page"> | ||||
|  |                          <div class="oe_structure"/> | ||||
|  | 
 | ||||
|  |                             <t t-if="o and 'company_id' in o"> | ||||
|  |                                 <t t-set="company" t-value="o.company_id"> </t> | ||||
|  |                             </t> | ||||
|  |                             <t t-if="not o or not 'company_id' in o"> | ||||
|  |                                 <t t-set="company" t-value="res_company"> </t> | ||||
|  |                             </t> | ||||
|  |                             <h3 style="text-decoration:underline;text-align:center;"><b>Visitor Report</b></h3> | ||||
|  |                              <br/> | ||||
|  |                              <br/> | ||||
|  |                              <table width="99%" style="margin-left:50px;margin-top:5px;border: None solid black;"> | ||||
|  |                                  <tr class="tr2"> | ||||
|  |                                     <td style="width:50px;height:25px;" ><span>Visitor: </span><span t-att-style="style" t-esc="o.visitor.name"/></td> | ||||
|  |                                     <td style="width:50px;height:25px;" ><span>Email  : </span><span t-att-style="style" t-esc="o.email"/></td> | ||||
|  |                                     <td style="width:50px;height:25px;" ><span>phone: </span><span t-att-style="style" t-esc="o.phone"/></td> | ||||
|  |                                 </tr> | ||||
|  |                                  <tr class="tr2"> | ||||
|  |                                      <t t-if ="o.visiting_person"><td style="width:50px;height:25px;" ><span>Meeting With     : </span><span t-att-style="style" t-esc="o.visiting_person.name"/></td></t> | ||||
|  |                                      <t t-if ="o.visiting_person"><td style="width:50px;height:25px;" ><span>Department    : </span><span t-att-style="style" t-esc="o.department.name"/></td></t> | ||||
|  |                                  </tr> | ||||
|  |                              </table> | ||||
|  |                              <br/> | ||||
|  |                              <br/> | ||||
|  |                              <h4 style="margin-left:50px"><b>In Out Details</b></h4> | ||||
|  |                              <table width="99%" style="margin-left:50px;margin-top:5px;border: None solid black;"> | ||||
|  |                                  <tr class="tr2"> | ||||
|  |                                     <td style="width:50px;height:25px;" ><span>Check In  : </span><span t-att-style="style" t-esc="o.check_in_date"/></td> | ||||
|  |                                     <td style="width:50px;height:25px;" ><span>Check Out : </span><span t-att-style="style" t-esc="o.check_out_date"/></td> | ||||
|  |                                 </tr> | ||||
|  |                              </table> | ||||
|  |                              <br/> | ||||
|  |                              <br/> | ||||
|  |                              <h4 style="margin-left:50px"><b>Personal Belongings</b></h4> | ||||
|  |                              <table width="90%" style="border:1px solid black;margin-left:50px"> | ||||
|  |                                  <thead> | ||||
|  |                                     <th  style="border:1px solid black;" width="13%" >Name</th> | ||||
|  |                                     <th  style="border:1px solid black;" width="13%" >Count</th> | ||||
|  |                                 </thead> | ||||
|  |                                 <tbody> | ||||
|  |                                     <t t-foreach="o.visitor_belongings" t-as="l"> | ||||
|  |                                         <tr> | ||||
|  |                                             <td style="border:1px solid black;"><span t-esc="l.property_name" style="font-size:16px;"/></td> | ||||
|  |                                             <td style="border:1px solid black;"><span t-esc="l.property_count" style="font-size:16px;"/></td> | ||||
|  |                                         </tr> | ||||
|  |                                     </t> | ||||
|  |                                 </tbody> | ||||
|  |                              </table> | ||||
|  |                          </div> | ||||
|  |                          <p style="page-break-after:always"></p> | ||||
|  |                     </t> | ||||
|  |                 </t> | ||||
|  |              </t> | ||||
|  |         </template> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,17 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  | 
 | ||||
|  |         <record model="ir.module.category" id="module_fo_front_office"> | ||||
|  |                 <field name="name">Reception</field> | ||||
|  |                 <field name="sequence">0</field> | ||||
|  |                 <field name="visible" eval="0" /> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="group_receptionist" model="res.groups"> | ||||
|  |             <field name="name">Receptionist</field> | ||||
|  |             <field name="category_id" ref="module_fo_front_office"/> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| 
 | 
| After Width: | Height: | Size: 86 KiB | 
| After Width: | Height: | Size: 32 KiB | 
| After Width: | Height: | Size: 50 KiB | 
| After Width: | Height: | Size: 32 KiB | 
| @ -0,0 +1,185 @@ | |||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <h2 class="oe_slogan">Front Office Management</h2> | ||||
|  |         <h3 class="oe_slogan">Manages Visitors and Employee Belongings</h3> | ||||
|  |         <h4 class="oe_slogan"><a href="https://www.cybrosys.com">Cybrosys Technologies</a> </h4> | ||||
|  |     </div> | ||||
|  |     <div class="oe_row oe_spaced" style="padding-left:65px;"> | ||||
|  |         <h4>Features:</h4> | ||||
|  |         <div> | ||||
|  |             <span style="color:green;"> ☑ </span> Manage visitors.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Issue Visitor Pass.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Keep Check in, Check out Details of Visitors.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Manage Visitor Belongings.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Print Report Of visitor.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Manage Employee Belongings.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Print Property Label.<br/> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div class="oe_picture"> | ||||
|  |             <h3 class="oe_slogan">Overview</h3> | ||||
|  |             <p class="oe_mt32 text-justify" style="text-align: center;"> | ||||
|  |                This app will help you to manage the visitors coming to your office by issuing entry passes and handling their belongings. | ||||
|  |                 The app can also manage the belongings of your employees. | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <p> | ||||
|  |                 <h3>Visitors</h3> | ||||
|  |             <p> | ||||
|  |         </div> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <span class="oe_mt32 text-justify" style="text-align: center;">Create visitors.</span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="visitor.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <p> | ||||
|  |                 <h3>Visits</h3> | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span class="oe_mt32 text-justify" style="text-align: center;">Add visiting details.</span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="visit.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <p> | ||||
|  |                 <h3>Visitor Pass</h3> | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span>Go to Visitor Management -> Visits -> Print -> Visitor Pass</span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="pass.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <p> | ||||
|  |                 <h3>Visitor Report</h3> | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span>Go to Visitor Management -> Visits -> Print -> Visitors Report</span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="report.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <p> | ||||
|  |                 <h3>Today's Visits</h3> | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="todays.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <p> | ||||
|  |                 <h3>Employee Belongings</h3> | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span>Here you can specify the field 'Permission' with the values of Allowed,Not Allowed and Allowed with permission.</span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="belongings.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <p> | ||||
|  |                 <h3>Property Label</h3> | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span class="oe_mt32 text-justify" style="text-align: center;">Print the properties name that are not allowed to enter to the office.</span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="label.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <p> | ||||
|  |                 <h3>Receptionist</h3> | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span>We can set 'Receptionist' access from users form.</span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="user.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <h2 class="oe_slogan" style="margin-top:20px;" >Need Any Help?</h2> | ||||
|  |     <div class="oe_slogan" style="margin-top:10px !important;"> | ||||
|  |         <div> | ||||
|  |             <a  class="btn btn-primary btn-lg mt8" | ||||
|  |             style="color: #FFFFFF !important;border-radius: 0;" href="https://www.cybrosys.com"><i | ||||
|  |             class="fa fa-envelope"></i> Email </a> <a | ||||
|  |             class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | ||||
|  |             href="https://www.cybrosys.com/contact/"><i | ||||
|  |             class="fa fa-phone"></i> Contact Us </a> <a | ||||
|  |             class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | ||||
|  |             href="https://www.cybrosys.com/odoo-customization-and-installation/"><i | ||||
|  |             class="fa fa-check-square"></i> Request Customization </a> | ||||
|  |         </div> | ||||
|  |         <br> | ||||
|  |         <img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block"> | ||||
|  |         <div> | ||||
|  |           <a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;"></i></a></td> | ||||
|  |           <a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |           <a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px;padding-left: 8px;"></i></a></td> | ||||
|  |           <a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |           <a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
| After Width: | Height: | Size: 25 KiB | 
| After Width: | Height: | Size: 24 KiB | 
| After Width: | Height: | Size: 23 KiB | 
| After Width: | Height: | Size: 21 KiB | 
| After Width: | Height: | Size: 54 KiB | 
| After Width: | Height: | Size: 50 KiB | 
| After Width: | Height: | Size: 41 KiB | 
| @ -0,0 +1,91 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  |         <record model="ir.ui.view" id="fo_property_counter_form_view"> | ||||
|  |             <field name="name">Property Counter</field> | ||||
|  |             <field name="model">fo.property.counter</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="Visits"> | ||||
|  |                     <header> | ||||
|  |                         <button name="action_prop_in" | ||||
|  |                                 string="Take In" | ||||
|  |                                 type="object" | ||||
|  |                                 states="draft" | ||||
|  |                                 class="oe_highlight" | ||||
|  |                                 /> | ||||
|  | 
 | ||||
|  |                         <button name="action_prop_out" | ||||
|  |                                 string="Take Out" | ||||
|  |                                 type="object" | ||||
|  |                                 states="prop_in" | ||||
|  |                                 class="oe_highlight" | ||||
|  |                                 /> | ||||
|  |                          <button name="action_cancel" | ||||
|  |                                 string="Cancel" | ||||
|  |                                 type="object" | ||||
|  |                                 states="draft" | ||||
|  |                                 attrs = "{'invisible': [('state', 'in', ('prop_in','prop_out'))]}"/> | ||||
|  | 
 | ||||
|  |                         <field name="state" | ||||
|  |                                widget="statusbar" | ||||
|  |                                statusbar_visible="draft,prop_in,prop_out,cancel" | ||||
|  |                               /> | ||||
|  |                     </header> | ||||
|  |                     <sheet> | ||||
|  |                         <group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="employee"/> | ||||
|  |                                 <field name="date"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                          <notebook> | ||||
|  |                             <page string="Personal belongings"> | ||||
|  |                                 <field name="visitor_belongings" widget="one2many_list" nolabel="1"> | ||||
|  |                                     <tree decoration-success="permission == '0' or permission == '2'" decoration-danger="permission == '1'"  string="Items"  editable="bottom"> | ||||
|  |                                         <field name="number"/> | ||||
|  |                                         <field name="property_name"/> | ||||
|  |                                         <field name="property_count"/> | ||||
|  |                                         <field name="permission"/> | ||||
|  |                                     </tree> | ||||
|  |                                 </field> | ||||
|  |                             </page> | ||||
|  |                          </notebook> | ||||
|  |                     </sheet> | ||||
|  |                     <div class="oe_chatter"> | ||||
|  |                         <field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/> | ||||
|  |                         <field name="message_ids" widget="mail_thread"/> | ||||
|  |                     </div> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record model="ir.ui.view" id="fo_property_counter_tree_view"> | ||||
|  |             <field name="name">Property Counter</field> | ||||
|  |             <field name="model">fo.property.counter</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <tree string="Visits" decoration-success="state == 'prop_in'" decoration-muted="state == 'prop_out'"> | ||||
|  |                     <field name="employee"/> | ||||
|  |                     <field name="date"/> | ||||
|  |                     <field name="state"/> | ||||
|  |                 </tree> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |         <record model="ir.actions.act_window" id="fo_property_counter_action"> | ||||
|  |             <field name="name">Property Counter</field> | ||||
|  |             <field name="res_model">fo.property.counter</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_mode">tree,form</field> | ||||
|  |             <field name="help" type="html"> | ||||
|  |                 <p class="oe_view_nocontent_create">Record Personal Belongings. | ||||
|  |                 </p> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <menuitem id="fo_property_counter_menu" name="Property Counter" parent="front_office_mgmnt_main" | ||||
|  |                   sequence="4"/> | ||||
|  |         <menuitem id="fo_property_counter_menu_child" name="Property Counter" parent="fo_property_counter_menu" action="fo_property_counter_action" | ||||
|  |                   groups="base.group_user" sequence="2"/> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,188 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  |         <record model="ir.ui.view" id="fo_visit_form_view"> | ||||
|  |             <field name="name">Visits</field> | ||||
|  |             <field name="model">fo.visit</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="Visits"> | ||||
|  |                     <header> | ||||
|  |                         <button name="action_check_in" | ||||
|  |                                 string="Check In" | ||||
|  |                                 type="object" | ||||
|  |                                 states="draft" | ||||
|  |                                 class="oe_highlight" | ||||
|  |                                 /> | ||||
|  | 
 | ||||
|  |                         <button name="action_check_out" | ||||
|  |                                 string="Check Out" | ||||
|  |                                 type="object" | ||||
|  |                                 states="check_in" | ||||
|  |                                 class="oe_highlight" | ||||
|  |                                 /> | ||||
|  |                          <button name="action_cancel" | ||||
|  |                                 string="Cancel" | ||||
|  |                                 type="object" | ||||
|  |                                 states="draft" | ||||
|  |                                 attrs = "{'invisible': [('state', 'in', ('check_in','check_out'))]}"/> | ||||
|  | 
 | ||||
|  |                         <field name="state" | ||||
|  |                                widget="statusbar" | ||||
|  |                                statusbar_visible="draft,check_in,check_out,cancel" | ||||
|  |                               /> | ||||
|  |                     </header> | ||||
|  |                     <sheet> | ||||
|  |                         <div class="oe_title"> | ||||
|  |                             <h1> | ||||
|  |                                 <field name="name" readonly="1"/> | ||||
|  |                             </h1> | ||||
|  |                         </div> | ||||
|  |                         <group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="visitor"/> | ||||
|  |                                 <field name="phone"/> | ||||
|  |                                 <field name="email"/> | ||||
|  |                             </group> | ||||
|  |                             <group string="Check In/Out Details"> | ||||
|  |                                 <field name="check_in_date" /> | ||||
|  |                                 <field name="check_out_date" /> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                         <group string="Purpose Of Visit"> | ||||
|  |                             <group> | ||||
|  |                                 <field name="visiting_person"/> | ||||
|  |                                 <field name="department"/> | ||||
|  |                                 <field name="reason" widget="many2many_tags"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                          <notebook> | ||||
|  |                             <page string="Personal Belongings"> | ||||
|  |                                 <field name="visitor_belongings" widget="one2many_list" nolabel="1"> | ||||
|  |                                     <tree decoration-success="permission == '0' or permission == '2'" decoration-danger="permission == '1'" string="Items" editable="bottom"> | ||||
|  |                                         <field name="number"/> | ||||
|  |                                         <field name="property_name"/> | ||||
|  |                                         <field name="property_count"/> | ||||
|  |                                         <field name="permission"/> | ||||
|  |                                     </tree> | ||||
|  |                                 </field> | ||||
|  |                             </page> | ||||
|  |                          </notebook> | ||||
|  |                     </sheet> | ||||
|  |                     <div class="oe_chatter"> | ||||
|  |                         <field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/> | ||||
|  |                         <field name="message_ids" widget="mail_thread"/> | ||||
|  |                     </div> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record model="ir.ui.view" id="fo_visit_tree_view"> | ||||
|  |             <field name="name">Visits</field> | ||||
|  |             <field name="model">fo.visit</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <tree string="Visits" decoration-success="state == 'check_in'" decoration-muted="state == 'check_out'"> | ||||
|  |                     <field name="visitor"/> | ||||
|  |                     <field name="reason"/> | ||||
|  |                     <field name="visiting_person"/> | ||||
|  |                     <field name="state"/> | ||||
|  |                 </tree> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record model="ir.actions.act_window" id="fo_visit_action"> | ||||
|  |             <field name="name">Visits</field> | ||||
|  |             <field name="res_model">fo.visit</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_mode">tree,form</field> | ||||
|  |             <field name="help" type="html"> | ||||
|  |                 <p class="oe_view_nocontent_create">Create  Visits. | ||||
|  |                 </p> | ||||
|  |                 <p> | ||||
|  |                     The check in time will be automatically filled when the visitor check in to the office. | ||||
|  |                 </p> | ||||
|  |                 <p> | ||||
|  |                     The check out time automatically filled when the visitor check out from office. | ||||
|  |                 </p> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |          <record id="fo_today_visit_action" model="ir.actions.act_window"> | ||||
|  |             <field name="name">Today's Visits</field> | ||||
|  |             <field name="res_model">fo.visit</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_mode">tree,form</field> | ||||
|  |             <field name="domain">[('check_in_date', '>=',((context_today()-datetime.timedelta(days=0)).strftime('%Y-%m-%d 00:00:00'))), | ||||
|  |              ('check_in_date', '<=',((context_today()-datetime.timedelta(days=0)).strftime('%Y-%m-%d 23:59:59')))] | ||||
|  |             </field> | ||||
|  |          </record> | ||||
|  | 
 | ||||
|  |          <record model="ir.sequence" id="seq_lab_visit"> | ||||
|  |             <field name="name">Visits</field> | ||||
|  |             <field name="code">fo.visit</field> | ||||
|  |             <field name="prefix">VID</field> | ||||
|  |             <field name="padding">3</field> | ||||
|  |             <field name="company_id" eval="False" /> | ||||
|  |          </record> | ||||
|  | 
 | ||||
|  |          <record model="ir.ui.view" id="fo_belongings_form_view"> | ||||
|  |             <field name="name">Belongings</field> | ||||
|  |             <field name="model">fo.belongings</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="Belongings"> | ||||
|  |                     <sheet> | ||||
|  |                         <group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="property_name"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                                  <field name="property_count"/> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                     </sheet> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |         <!--Proof Form view--> | ||||
|  |          <record model="ir.ui.view" id="fo_id_proof_form_view"> | ||||
|  |             <field name="name">ID Proof</field> | ||||
|  |             <field name="model">id.proof</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="ID Proof"> | ||||
|  |                     <sheet> | ||||
|  |                         <group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="id_proof"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                                  <field name="code"/> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                     </sheet> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <!--visiting purpose view--> | ||||
|  | 
 | ||||
|  |         <record model="ir.ui.view" id="fo_visiting_purpose_form_view"> | ||||
|  |             <field name="name">Visiting Purpose</field> | ||||
|  |             <field name="model">fo.purpose</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="Visiting Purpose"> | ||||
|  |                     <sheet> | ||||
|  |                         <group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="name"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="description"/> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                     </sheet> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,120 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  |         <record model="ir.ui.view" id="fo_visitor_form_view"> | ||||
|  |             <field name="name">Visitors</field> | ||||
|  |             <field name="model">fo.visitor</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="Visitors"> | ||||
|  |                     <sheet> | ||||
|  |                         <div class="oe_right oe_button_box" name="button_box"> | ||||
|  |                             <button class="oe_inline oe_stat_button" name="%(fo_visit_action)d" type="action" icon="fa-arrows-v" | ||||
|  |                                context="{'default_visitor': [active_id],'search_default_visitor': [active_id]}"> | ||||
|  |                                 <field name="visit_count" widget="statinfo" string="Visits"/> | ||||
|  |                             </button> | ||||
|  |                         </div> | ||||
|  |                         <field name="visitor_image" widget="image" class="oe_avatar"/> | ||||
|  |                         <div name="title_name" class="oe_title"> | ||||
|  |                             <h1> | ||||
|  |                                 <table> | ||||
|  |                                     <tr> | ||||
|  |                                         <td> | ||||
|  |                                             <field name="name" | ||||
|  |                                                 placeholder="FullName" | ||||
|  |                                                 style="padding-right:10px" /> | ||||
|  |                                         </td> | ||||
|  |                                     </tr> | ||||
|  |                                 </table> | ||||
|  |                             </h1> | ||||
|  |                         </div> | ||||
|  |                         <group> | ||||
|  |                             <group> | ||||
|  |                                 <label for="street" string="Address"/> | ||||
|  |                                 <div class="o_address_format"> | ||||
|  |                                     <field name="street" placeholder="Street..." class="o_address_street"/> | ||||
|  |                                     <field name="street2" placeholder="Street 2..." class="o_address_street"/> | ||||
|  |                                     <field name="city" placeholder="City" class="o_address_city"/> | ||||
|  |                                     <field name="state_id" class="o_address_state" placeholder="State" options='{"no_open": True}'/> | ||||
|  |                                     <field name="zip" placeholder="ZIP" class="o_address_zip"/> | ||||
|  |                                     <field name="country_id" placeholder="Country" class="o_address_country" options='{"no_open": True, "no_create": True}'/> | ||||
|  |                                 </div> | ||||
|  |                                 <field name="company_info"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="phone"/> | ||||
|  |                                 <field name="email"/> | ||||
|  |                                 <field name="id_proof" /> | ||||
|  |                                 <field name="id_proof_no"/> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                     </sheet> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="fo_visitor_kanban_view" model="ir.ui.view"> | ||||
|  |             <field name="name">fo.visitor.kanban</field> | ||||
|  |             <field name="model">fo.visitor</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <kanban> | ||||
|  |                     <field name="id"/> | ||||
|  |                     <templates> | ||||
|  |                         <t t-name="kanban-box"> | ||||
|  |                             <div class="oe_kanban_global_click"> | ||||
|  |                                 <div class="o_kanban_image"> | ||||
|  |                                     <img t-att-src="kanban_image('fo.visitor', 'visitor_image', record.id.value)"/> | ||||
|  |                                 </div> | ||||
|  |                                 <div class="oe_kanban_details"> | ||||
|  |                                     <strong> | ||||
|  |                                         <ul> | ||||
|  |                                             <li>Name :<field name="name"/></li> | ||||
|  |                                             <li>Phone:<field name="phone"/></li> | ||||
|  |                                         </ul> | ||||
|  |                                     </strong> | ||||
|  |                                 </div> | ||||
|  |                             </div> | ||||
|  |                         </t> | ||||
|  |                     </templates> | ||||
|  |                 </kanban> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |          | ||||
|  | 
 | ||||
|  |         <record model="ir.ui.view" id="fo_visitor_tree_view"> | ||||
|  |             <field name="name">Visitors</field> | ||||
|  |             <field name="model">fo.visitor</field> | ||||
|  |             <field name="type">tree</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <tree string='Visitors'> | ||||
|  |                     <field name="name"/> | ||||
|  |                     <field name="phone"/> | ||||
|  |                     <field name="company_info"/> | ||||
|  |                 </tree> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="fo_visitor_action" model="ir.actions.act_window"> | ||||
|  |             <field name="name">Visitors</field> | ||||
|  |             <field name="type">ir.actions.act_window</field> | ||||
|  |             <field name="res_model">fo.visitor</field> | ||||
|  |             <field name="view_mode">kanban,tree,form</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_id" ref="fo_visitor_kanban_view"/> | ||||
|  |             <field name="help" type="html"> | ||||
|  |                 <p class="oe_view_nocontent_create"> | ||||
|  |                     Click to Create New Visitor. | ||||
|  |                 </p> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <menuitem id="front_office_mgmnt_main" name="Front Office" sequence="2"/> | ||||
|  |         <menuitem id="visitor_mgmnt_menu" name="Visitor Management" parent="front_office_mgmnt_main" sequence="1"/> | ||||
|  |         <menuitem id="visitor_menu" name="Visitor" parent="visitor_mgmnt_menu" action="fo_visitor_action" | ||||
|  |                   groups="base.group_user" sequence="1"/> | ||||
|  |         <menuitem id="fo_visit_menu" name="Visits" parent="visitor_mgmnt_menu" action="fo_visit_action" | ||||
|  |                   sequence="2"/> | ||||
|  |         <menuitem id="fo_today_visit_menu" name="Today's Visits" parent="front_office_mgmnt_main" sequence="2"/> | ||||
|  |         <menuitem id="fo_today_visit_menu_child" name="Today's Visits" parent="fo_today_visit_menu" action="fo_today_visit_action" | ||||
|  |                   groups="base.group_user" sequence="2"/> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,23 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from . import models | ||||
| @ -0,0 +1,49 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | { | ||||
|  |     'name': 'Insurance Management', | ||||
|  |     'version': '12.0.1.0.0', | ||||
|  |     'summary': """Insurance Management & Operations""", | ||||
|  |     'description': """Insurance Management""", | ||||
|  |     'author': 'Cybrosys Techno Solutions', | ||||
|  |     'company': 'Cybrosys Techno Solutions', | ||||
|  |     'website': 'https://www.cybrosys.com', | ||||
|  |     'category': 'Industries', | ||||
|  |     'depends': ['base', 'account'], | ||||
|  |     'license': 'AGPL-3', | ||||
|  |     'data': [ | ||||
|  |         'views/insurance_details.xml', | ||||
|  |         'views/claim_details.xml', | ||||
|  |         'views/employee_details.xml', | ||||
|  |         'views/policy_management.xml', | ||||
|  |         'views/insurance_sequence.xml', | ||||
|  |         'views/insurance_management.xml', | ||||
|  |         'security/ir.model.access.csv', | ||||
|  |     ], | ||||
|  |     'demo': [], | ||||
|  |     'images': ['static/description/banner.jpg'], | ||||
|  |     'installable': True, | ||||
|  |     'application': True, | ||||
|  |     'auto_install': False, | ||||
|  | } | ||||
|  | 
 | ||||
| @ -0,0 +1,26 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from . import insurance_model | ||||
|  | from . import claim_details | ||||
|  | from . import employee_details | ||||
|  | from . import policy_details | ||||
| @ -0,0 +1,64 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from odoo import models, fields, api, _ | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class ClaimDetails(models.Model): | ||||
|  |     _name = 'claim.details' | ||||
|  | 
 | ||||
|  |     name = fields.Char(string='Name', required=True, copy=False, readonly=True, index=True, | ||||
|  |                        default=lambda self: _('New')) | ||||
|  |     name_2 = fields.Char(string='Name 2', required=True, copy=False, readonly=True, index=True, | ||||
|  |                          default=lambda self: _('New')) | ||||
|  |     insurance_id = fields.Many2one('insurance.details', required=True) | ||||
|  |     partner_id = fields.Many2one(related='insurance_id.partner_id', string='Customer', readonly=True) | ||||
|  |     policy_id = fields.Many2one(related='insurance_id.policy_id', string='Policy', readonly=True) | ||||
|  |     employee_id = fields.Many2one(related='insurance_id.employee_id', string='Agent', readonly=True) | ||||
|  |     amount = fields.Float(related='insurance_id.amount', string='Amount') | ||||
|  |     date_claimed = fields.Date(string='Date Applied', default=fields.Date.today()) | ||||
|  |     invoice_id = fields.Many2one('account.invoice', string='Invoiced', readonly=True, copy=False) | ||||
|  |     note_field = fields.Html(string='Comment') | ||||
|  | 
 | ||||
|  |     @api.model | ||||
|  |     def create(self, vals): | ||||
|  |         if vals.get('name', 'New') == 'New': | ||||
|  |             vals['name'] = self.env['ir.sequence'].next_by_code('claim.details') or 'New' | ||||
|  |         return super(ClaimDetails, self).create(vals) | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def create_invoice(self): | ||||
|  |         if not self.invoice_id: | ||||
|  |             invoice_val = self.env['account.invoice'].create({ | ||||
|  |                                 'type': 'in_invoice', | ||||
|  |                                 'partner_id': self.partner_id.id, | ||||
|  |                                 'user_id': self.env.user.id, | ||||
|  |                                 'claim_id': self.id, | ||||
|  |                                 'origin': self.name, | ||||
|  |                                 'invoice_line_ids': [(0, 0, { | ||||
|  |                                     'name': 'Invoice For Insurance Claim', | ||||
|  |                                     'quantity': 1, | ||||
|  |                                     'price_unit': self.amount, | ||||
|  |                                     'account_id': 41, | ||||
|  |                                 })], | ||||
|  |                             }) | ||||
|  |             self.invoice_id = invoice_val | ||||
| @ -0,0 +1,79 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from odoo import models, fields, api, _ | ||||
|  | from odoo.exceptions import UserError | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class EmployeeDetails(models.Model): | ||||
|  |     _name = 'employee.details' | ||||
|  | 
 | ||||
|  |     name = fields.Char(string='Name', required=True) | ||||
|  |     related_partner = fields.Many2one('res.users', string='Related User', copy=False) | ||||
|  |     sex = fields.Selection([('male', 'Male'), ('female', 'Female')]) | ||||
|  |     phone = fields.Float(string='Phone Number', size=15, digits=(15, 0)) | ||||
|  |     salary_type = fields.Selection([('fixed', 'Fixed'), ('commission', 'Commission'), ('both', 'Both')], | ||||
|  |                                    default='commission', required=True) | ||||
|  |     base_salary = fields.Integer(string='Base Salary') | ||||
|  |     last_salary = fields.Date(string='Last Payment On', copy=False) | ||||
|  |     insurance_ids = fields.One2many('insurance.details', 'employee_id', string='Last Payment On', readonly=True) | ||||
|  |     note_field = fields.Html(string='Comment') | ||||
|  |     invoice_id = fields.Many2one('account.invoice', string='Last payment', copy=False, readonly=True) | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def salary_payment(self): | ||||
|  |         if self.invoice_id: | ||||
|  |             if self.invoice_id.state == 'draft': | ||||
|  |                 raise UserError(_("You Must validate last payment made in order to create a new payment")) | ||||
|  |         amount = 0 | ||||
|  |         if self.salary_type == 'fixed': | ||||
|  |             amount = self.base_salary | ||||
|  |         elif self.salary_type == 'commission': | ||||
|  |             for ins in self.insurance_ids: | ||||
|  |                 if self.last_salary: | ||||
|  |                     if ins.date_start > self.last_salary: | ||||
|  |                         amount += (ins.commission_rate * ins.amount)/100 | ||||
|  |         else: | ||||
|  |             amount = self.base_salary | ||||
|  |             for ins in self.insurance_ids: | ||||
|  |                 if ins.date_start > self.last_salary: | ||||
|  |                     amount += (ins.commission_rate * ins.amount) / 100 | ||||
|  | 
 | ||||
|  |         if amount == 0: | ||||
|  |             raise UserError(_("Amount should be greater than zero")) | ||||
|  |         invoice_date = self.env['account.invoice'].create({ | ||||
|  |             'type': 'in_invoice', | ||||
|  |             'partner_id': self.related_partner.partner_id.id, | ||||
|  |             'user_id': self.env.user.id, | ||||
|  |             'claim_id': self.id, | ||||
|  |             'origin': self.name, | ||||
|  |             'invoice_line_ids': [(0, 0, { | ||||
|  |                 'name': 'Invoice For Insurance Claim', | ||||
|  |                 'quantity': 1, | ||||
|  |                 'price_unit': amount, | ||||
|  |                 'account_id': 41, | ||||
|  |             })], | ||||
|  |         }) | ||||
|  |         self.write({ | ||||
|  |             'invoice_id': invoice_date.id, | ||||
|  |             'last_salary': fields.Date.today() | ||||
|  |         }) | ||||
| @ -0,0 +1,90 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from odoo import models, fields, api, _ | ||||
|  | from odoo.exceptions import UserError | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class InsuranceDetails(models.Model): | ||||
|  |     _name = 'insurance.details' | ||||
|  | 
 | ||||
|  |     name = fields.Char(string='Name', required=True, copy=False, readonly=True, index=True, | ||||
|  |                        default=lambda self: _('New')) | ||||
|  |     partner_id = fields.Many2one('res.partner', string='Customer', required=True) | ||||
|  |     date_start = fields.Date(string='Date Started', default=fields.Date.today(), required=True) | ||||
|  |     close_date = fields.Date(string='Date Closed') | ||||
|  |     invoice_ids = fields.One2many('account.invoice', 'insurance_id', string='Invoices', readonly=True) | ||||
|  |     employee_id = fields.Many2one('employee.details', string='Agent', required=True) | ||||
|  |     commission_rate = fields.Float(string='Commission Percentage') | ||||
|  |     policy_id = fields.Many2one('policy.details', string='Policy', required=True) | ||||
|  |     amount = fields.Float(related='policy_id.amount', string='Amount') | ||||
|  |     state = fields.Selection([('draft', 'Draft'), ('confirmed', 'Confirmed'), ('closed', 'Closed')], | ||||
|  |                              required=True, default='draft') | ||||
|  |     hide_inv_button = fields.Boolean(copy=False) | ||||
|  |     note_field = fields.Html(string='Comment') | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def confirm_insurance(self): | ||||
|  |         if self.amount > 0: | ||||
|  |             self.state = 'confirmed' | ||||
|  |             self.hide_inv_button = True | ||||
|  |         else: | ||||
|  |             raise UserError(_("Amount should be Greater than Zero")) | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def create_invoice(self): | ||||
|  |         self.env['account.invoice'].create({ | ||||
|  |             'type': 'out_invoice', | ||||
|  |             'partner_id': self.partner_id.id, | ||||
|  |             'user_id': self.env.user.id, | ||||
|  |             'insurance_id': self.id, | ||||
|  |             'origin': self.name, | ||||
|  |             'invoice_line_ids': [(0, 0, { | ||||
|  |                 'name': 'Invoice For Insurance', | ||||
|  |                 'quantity': 1, | ||||
|  |                 'price_unit': self.amount, | ||||
|  |                 'account_id': 41, | ||||
|  |             })], | ||||
|  |         }) | ||||
|  |         if self.policy_id.payment_type == 'fixed': | ||||
|  |             self.hide_inv_button = False | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def close_insurance(self): | ||||
|  |         for records in self.invoice_ids: | ||||
|  |             if records.state == 'paid': | ||||
|  |                 raise UserError(_("All invoices must be Paid")) | ||||
|  |         self.state = 'closed' | ||||
|  |         self.hide_inv_button = False | ||||
|  | 
 | ||||
|  |     @api.model | ||||
|  |     def create(self, vals): | ||||
|  |         if vals.get('name', 'New') == 'New': | ||||
|  |             vals['name'] = self.env['ir.sequence'].next_by_code('insurance.details') or 'New' | ||||
|  |         return super(InsuranceDetails, self).create(vals) | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class AccountInvoiceRelate(models.Model): | ||||
|  |     _inherit = 'account.invoice' | ||||
|  | 
 | ||||
|  |     insurance_id = fields.Many2one('insurance.details', string='Insurance') | ||||
|  |     claim_id = fields.Many2one('claim.details', string='Insurance') | ||||
| @ -0,0 +1,41 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ############################################################################## | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ############################################################################## | ||||
|  | 
 | ||||
|  | from odoo import models, fields | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class PolicyDetails(models.Model): | ||||
|  |     _name = 'policy.details' | ||||
|  | 
 | ||||
|  |     name = fields.Char(string='Name', required=True) | ||||
|  |     policy_type = fields.Many2one('policy.type', string='Policy Type', required=True) | ||||
|  |     payment_type = fields.Selection([('fixed', 'Fixed'), ('installment', 'Installment')], | ||||
|  |                                     required=True, default='fixed') | ||||
|  |     amount = fields.Float(string='Amount', required=True) | ||||
|  |     policy_duration = fields.Integer(string='Duration in Days', required=True) | ||||
|  |     note_field = fields.Html(string='Comment') | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class PolicyType(models.Model): | ||||
|  |     _name = 'policy.type' | ||||
|  | 
 | ||||
|  |     name = fields.Char(string='Name') | ||||
| 
 | 
| After Width: | Height: | Size: 125 KiB | 
| After Width: | Height: | Size: 50 KiB | 
| After Width: | Height: | Size: 15 KiB | 
| @ -0,0 +1,137 @@ | |||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <h2 class="oe_slogan">Insurance Management</h2> | ||||
|  |         <h3 class="oe_slogan">Manage Insurance Business easily</h3> | ||||
|  |         <h4 class="oe_slogan">Author : Cybrosys Techno Solutions , www.cybrosys.com</h4> | ||||
|  |         <div> | ||||
|  |             <h4><p>Features:</p></h4> | ||||
|  |             <ul> | ||||
|  |                 <li style="list-style:none !important;"><span style="color:green;"> ☑</span>   Create insurance policies for customers.</li> | ||||
|  |                 <li style="list-style:none !important;"><span style="color:green;"> ☑</span>   Manage insurance claims and details.</li> | ||||
|  |                 <li style="list-style:none !important;"><span style="color:green;"> ☑</span>   Manage agents salary and commission.</li> | ||||
|  |                 <li style="list-style:none !important;"><span style="color:green;"> ☑</span>   Create accounting entries for all details.</li> | ||||
|  |             </ul> | ||||
|  |         </div> | ||||
|  |      </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |      <div class="oe_row oe_spaced"> | ||||
|  |         <h3 class="oe_slogan">Insurance Management System</h3> | ||||
|  |         <div class="oe_row oe_spaced"> | ||||
|  |             <div class="oe_span12"> | ||||
|  |                 <div class="oe_row_img oe_centered"> | ||||
|  |                     <img class="oe_picture oe_screenshot" src="insurance_1.png"> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |             <div class="oe_span12"> | ||||
|  |                 <p class="oe_mt32"> | ||||
|  |                     Create insurance policies for customers</p> | ||||
|  |                 <p> | ||||
|  |                     Option to create multiple or single insurance based on policy</p> | ||||
|  |                 <p> | ||||
|  |                     Monitor payment details | ||||
|  |                 </p> | ||||
|  |             </div> | ||||
|  | 
 | ||||
|  |         </div> | ||||
|  |      </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <h3 class="oe_slogan">Claims Management System</h3> | ||||
|  |         <div class="oe_row oe_spaced"> | ||||
|  |             <div class="oe_span12"> | ||||
|  |                 <div class="oe_row_img oe_centered"> | ||||
|  |                     <img class="oe_picture oe_screenshot" src="insurance_2.png"> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |             <div class="oe_span12"> | ||||
|  |                 <p class="oe_mt32"> | ||||
|  |                     Create and manage customer claims for the insurances | ||||
|  |                     </p><p> | ||||
|  |                     Create payment from the same form | ||||
|  |                 </p> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div class="oe_span6"> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                <img src="insurance_3.png"> | ||||
|  |             </div> | ||||
|  |             <p class="oe_mt32"> | ||||
|  |                 <p> | ||||
|  |                     Create agent details | ||||
|  |         </p> | ||||
|  |             <p> | ||||
|  |                     Automated creation of salary or commission | ||||
|  |             </p> | ||||
|  |             <p> | ||||
|  |                     Manage payment details | ||||
|  |             </p> | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <h3 class="oe_slogan">Create Policy</h3> | ||||
|  |         <div class="oe_span12"> | ||||
|  |             <div class="oe_row_img oe_centered"> | ||||
|  |                 <img class="oe_picture oe_screenshot" src="insurance_4.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div class="oe_span12"> | ||||
|  |             <p class="oe_mt32"> | ||||
|  |                Create All types of policies from here | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div class="oe_span6"> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                <img src="insurance_5.png"> | ||||
|  |             </div> | ||||
|  |             <p class="oe_mt32"> | ||||
|  |                 <p> | ||||
|  |                     Customer Details form | ||||
|  |                 </p> | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |         <h2 class="oe_slogan" style="margin-top:20px;" >Need Any Help?</h2> | ||||
|  |         <div class="oe_slogan" style="margin-top:10px !important;"> | ||||
|  |             <div> | ||||
|  |                 <a  class="btn btn-primary btn-lg mt8" | ||||
|  |                 style="color: #FFFFFF !important;border-radius: 0;" href="https://www.cybrosys.com"><i | ||||
|  |                 class="fa fa-envelope"></i> Email </a> <a | ||||
|  |                 class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | ||||
|  |                 href="https://www.cybrosys.com/contact/"><i | ||||
|  |                 class="fa fa-phone"></i> Contact Us </a> <a | ||||
|  |                 class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | ||||
|  |                 href="https://www.cybrosys.com/odoo-customization-and-installation/"><i | ||||
|  |                 class="fa fa-check-square"></i> Request Customization </a> | ||||
|  |             </div> | ||||
|  |             <br> | ||||
|  |             <img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block"> | ||||
|  |             <div> | ||||
|  |               <a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;"></i></a></td> | ||||
|  |               <a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |               <a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px;padding-left: 8px;"></i></a></td> | ||||
|  |               <a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |               <a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  | </section> | ||||
| After Width: | Height: | Size: 50 KiB | 
| After Width: | Height: | Size: 40 KiB | 
| After Width: | Height: | Size: 41 KiB | 
| After Width: | Height: | Size: 35 KiB | 
| After Width: | Height: | Size: 96 KiB | 
| @ -0,0 +1,70 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  | 
 | ||||
|  |     <data> | ||||
|  |         <record id="claim_details_form" model="ir.ui.view"> | ||||
|  |             <field name="name">Claim Details</field> | ||||
|  |             <field name="model">claim.details</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="Claim Details Form"> | ||||
|  |                     <header> | ||||
|  |                         <button name="create_invoice" string="Create Invoice" type="object" class="oe_highlight" | ||||
|  |                                 attrs="{'invisible': [('invoice_id', '!=', False)]}"/> | ||||
|  |                    </header> | ||||
|  |                     <sheet> | ||||
|  |                         <div class="oe_title"> | ||||
|  |                         <h1> | ||||
|  |                             <field name="name"/> | ||||
|  |                         </h1> | ||||
|  |                         </div> | ||||
|  |                         <group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="insurance_id"/> | ||||
|  |                                 <field name="partner_id"/> | ||||
|  |                                 <field name="policy_id"/> | ||||
|  |                                 <field name="employee_id"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="date_claimed"/> | ||||
|  |                                 <field name="amount"/> | ||||
|  |                                 <field name="invoice_id"/> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                         <notebook> | ||||
|  |                             <page string="Extra Notes"> | ||||
|  |                                 <field name="note_field"/> | ||||
|  |                             </page> | ||||
|  |                         </notebook> | ||||
|  |                     </sheet> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="claim_details_tree" model="ir.ui.view"> | ||||
|  |             <field name="name">Claim Details</field> | ||||
|  |             <field name="model">claim.details</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <tree string="Claim Details Tree"> | ||||
|  |                     <field name="name"/> | ||||
|  |                     <field name="insurance_id"/> | ||||
|  |                     <field name="partner_id"/> | ||||
|  |                     <field name="policy_id"/> | ||||
|  |                     <field name="amount"/> | ||||
|  |                 </tree> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |         <record id="action_claim_management" model="ir.actions.act_window"> | ||||
|  |             <field name="name">Claim Management</field> | ||||
|  |             <field name="res_model">claim.details</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_mode">tree,form</field> | ||||
|  |             <field name="help" type="html"> | ||||
|  |                 <p class="oe_view_nocontent_create"> | ||||
|  |                     You have'nt created any claims yet. | ||||
|  |                 </p> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |     </data> | ||||
|  | 
 | ||||
|  | </odoo> | ||||
| @ -0,0 +1,71 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  | 
 | ||||
|  |     <data> | ||||
|  |         <record id="employee_details_form" model="ir.ui.view"> | ||||
|  |             <field name="name">Employee Details</field> | ||||
|  |             <field name="model">employee.details</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="Employee Details Form"> | ||||
|  |                     <header> | ||||
|  |                        <button name="salary_payment" string="Salary Payment" type="object" | ||||
|  |                                attrs="{'invisible': [('related_partner', '=', False)]}" class="oe_highlight"/> | ||||
|  |                    </header> | ||||
|  |                     <sheet> | ||||
|  |                         <div class="oe_title"> | ||||
|  |                         <h1> | ||||
|  |                             <field name="name"/> | ||||
|  |                         </h1> | ||||
|  |                         </div> | ||||
|  |                         <group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="phone"/> | ||||
|  |                                 <field name="salary_type"/> | ||||
|  |                                 <field name="base_salary"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="sex"/> | ||||
|  |                                 <field name="last_salary"/> | ||||
|  |                                 <field name="related_partner"/> | ||||
|  |                                 <field name="invoice_id"/> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                         <notebook> | ||||
|  |                             <page string="Insurance_ids"> | ||||
|  |                                 <field name="insurance_ids"/> | ||||
|  |                             </page> | ||||
|  |                             <page string="Extra Notes"> | ||||
|  |                                 <field name="note_field"/> | ||||
|  |                             </page> | ||||
|  |                         </notebook> | ||||
|  |                     </sheet> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |         <record id="employee_details_tree" model="ir.ui.view"> | ||||
|  |             <field name="name">Employee Details</field> | ||||
|  |             <field name="model">employee.details</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <tree string="Employee Details Tree"> | ||||
|  |                     <field name="name"/> | ||||
|  |                     <field name="phone"/> | ||||
|  |                     <field name="salary_type"/> | ||||
|  |                     <field name="sex"/> | ||||
|  |                     <field name="last_salary"/> | ||||
|  |                 </tree> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |         <record id="action_employee_management" model="ir.actions.act_window"> | ||||
|  |             <field name="name">Employee Management</field> | ||||
|  |             <field name="res_model">employee.details</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_mode">tree,form</field> | ||||
|  |             <field name="help" type="html"> | ||||
|  |                 <p class="oe_view_nocontent_create"> | ||||
|  |                     You have'nt created any employee yet. | ||||
|  |                 </p> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |     </data> | ||||
|  | 
 | ||||
|  | </odoo> | ||||
| @ -0,0 +1,78 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  | 
 | ||||
|  |     <data> | ||||
|  |         <record id="insurance_details_form" model="ir.ui.view"> | ||||
|  |             <field name="name">Insurance Details</field> | ||||
|  |             <field name="model">insurance.details</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="Insurance Details Form"> | ||||
|  |                     <header> | ||||
|  |                        <button name="confirm_insurance" string="Confirm" type="object" | ||||
|  |                                states="draft" class="oe_highlight"/> | ||||
|  |                         <button name="create_invoice" string="Create Invoice" type="object" class="oe_highlight" | ||||
|  |                         attrs="{'invisible': [('hide_inv_button', '!=', True)]}"/> | ||||
|  |                         <button name="close_insurance" string="Close" type="object" | ||||
|  |                                states="confirmed" class="oe_highlight"/> | ||||
|  |                        <field name="state" widget="statusbar"/> | ||||
|  |                    </header> | ||||
|  |                     <sheet> | ||||
|  |                         <div class="oe_title"> | ||||
|  |                         <h1> | ||||
|  |                             <field name="name"/> | ||||
|  |                         </h1> | ||||
|  |                         </div> | ||||
|  |                         <group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="partner_id"/> | ||||
|  |                                 <field name="policy_id"/> | ||||
|  |                                 <field name="employee_id"/> | ||||
|  |                                 <field name="commission_rate"/> | ||||
|  |                                 <field name="hide_inv_button" invisible="1"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="date_start"/> | ||||
|  |                                 <field name="close_date"/> | ||||
|  |                                 <field name="amount"/> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                         <notebook> | ||||
|  |                             <page string="Invoices"> | ||||
|  |                                 <field name="invoice_ids"/> | ||||
|  |                             </page> | ||||
|  |                             <page string="Extra Notes"> | ||||
|  |                                 <field name="note_field"/> | ||||
|  |                             </page> | ||||
|  |                         </notebook> | ||||
|  |                     </sheet> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |         <record id="insurance_details_tree" model="ir.ui.view"> | ||||
|  |             <field name="name">Insurance Details</field> | ||||
|  |             <field name="model">insurance.details</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <tree string="Insurance Details Tree"> | ||||
|  |                     <field name="name"/> | ||||
|  |                     <field name="partner_id"/> | ||||
|  |                     <field name="policy_id"/> | ||||
|  |                     <field name="employee_id"/> | ||||
|  |                     <field name="amount"/> | ||||
|  |                     <field name="state"/> | ||||
|  |                 </tree> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |         <record id="action_insurance_management" model="ir.actions.act_window"> | ||||
|  |             <field name="name">Insurance Management</field> | ||||
|  |             <field name="res_model">insurance.details</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_mode">tree,form</field> | ||||
|  |             <field name="help" type="html"> | ||||
|  |                 <p class="oe_view_nocontent_create"> | ||||
|  |                     You have'nt created any insurance yet. | ||||
|  |                 </p> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |     </data> | ||||
|  | 
 | ||||
|  | </odoo> | ||||
| @ -0,0 +1,50 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  | 
 | ||||
|  |         <menuitem | ||||
|  |                 id="insurance_main_menu" | ||||
|  |                 name="Insurance"/> | ||||
|  | 
 | ||||
|  |         <menuitem | ||||
|  |                 id="insurance_management_menu" | ||||
|  |                 name="Insurance Management" | ||||
|  |                 parent="insurance_main_menu"/> | ||||
|  |         <menuitem | ||||
|  |                 id="insurance_management_submenu" | ||||
|  |                 name="Insurance" | ||||
|  |                 parent="insurance_management_menu" | ||||
|  |                 action="action_insurance_management"/> | ||||
|  |         <menuitem | ||||
|  |                 id="claim_management_submenu" | ||||
|  |                 name="Claims" | ||||
|  |                 parent="insurance_management_menu" | ||||
|  |                 action="action_claim_management"/> | ||||
|  | 
 | ||||
|  |         <menuitem | ||||
|  |                 id="employee_management_menu" | ||||
|  |                 name="Agent" | ||||
|  |                 parent="insurance_main_menu"/> | ||||
|  |         <menuitem | ||||
|  |                 id="employee_management_submenu" | ||||
|  |                 name="Agent" | ||||
|  |                 parent="employee_management_menu" | ||||
|  |                 action="action_employee_management"/> | ||||
|  | 
 | ||||
|  |         <menuitem | ||||
|  |                 id="configuration_management_menu" | ||||
|  |                 name="Configuration" | ||||
|  |                 parent="insurance_main_menu"/> | ||||
|  |         <menuitem | ||||
|  |                 id="policy_management_menu" | ||||
|  |                 name="Policy" | ||||
|  |                 parent="configuration_management_menu" | ||||
|  |                 action="action_policy_management"/> | ||||
|  |         <menuitem | ||||
|  |                 id="customer_management_menu" | ||||
|  |                 name="Customers" | ||||
|  |                 parent="configuration_management_menu" | ||||
|  |                 action="base.action_partner_customer_form"/> | ||||
|  |     </data> | ||||
|  | 
 | ||||
|  | </odoo> | ||||
| @ -0,0 +1,19 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  |         <record id="seq_insurance_details" model="ir.sequence"> | ||||
|  |             <field name="name">Insurance Details</field> | ||||
|  |             <field name="code">insurance.details</field> | ||||
|  |             <field name="prefix">INS/</field> | ||||
|  |             <field name="padding">3</field> | ||||
|  |             <field name="company_id" eval="False"/> | ||||
|  |         </record> | ||||
|  |         <record id="seq_claim_details" model="ir.sequence"> | ||||
|  |             <field name="name">Claim Details</field> | ||||
|  |             <field name="code">claim.details</field> | ||||
|  |             <field name="prefix">CLM/</field> | ||||
|  |             <field name="padding">3</field> | ||||
|  |             <field name="company_id" eval="False"/> | ||||
|  |         </record> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,59 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  |         <record id="policy_details_form" model="ir.ui.view"> | ||||
|  |             <field name="name">Policy Details</field> | ||||
|  |             <field name="model">policy.details</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <form string="Policy Details Form"> | ||||
|  |                     <sheet> | ||||
|  |                         <div class="oe_title"> | ||||
|  |                         <h1> | ||||
|  |                             <field name="name"/> | ||||
|  |                         </h1> | ||||
|  |                         </div> | ||||
|  |                         <group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="policy_type"/> | ||||
|  |                                 <field name="policy_duration"/> | ||||
|  |                             </group> | ||||
|  |                             <group> | ||||
|  |                                 <field name="payment_type"/> | ||||
|  |                                 <field name="amount"/> | ||||
|  |                             </group> | ||||
|  |                         </group> | ||||
|  |                         <notebook> | ||||
|  |                             <page string="Extra Notes"> | ||||
|  |                                 <field name="note_field"/> | ||||
|  |                             </page> | ||||
|  |                         </notebook> | ||||
|  |                     </sheet> | ||||
|  |                 </form> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |         <record id="policy_details_tree" model="ir.ui.view"> | ||||
|  |             <field name="name">Policy Details</field> | ||||
|  |             <field name="model">policy.details</field> | ||||
|  |             <field name="arch" type="xml"> | ||||
|  |                 <tree string="Policy Details Tree"> | ||||
|  |                     <field name="name"/> | ||||
|  |                     <field name="policy_type"/> | ||||
|  |                     <field name="policy_duration"/> | ||||
|  |                     <field name="payment_type"/> | ||||
|  |                     <field name="amount"/> | ||||
|  |                 </tree> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |         <record id="action_policy_management" model="ir.actions.act_window"> | ||||
|  |             <field name="name">Policy Management</field> | ||||
|  |             <field name="res_model">policy.details</field> | ||||
|  |             <field name="view_type">form</field> | ||||
|  |             <field name="view_mode">tree,form</field> | ||||
|  |             <field name="help" type="html"> | ||||
|  |                 <p class="oe_view_nocontent_create"> | ||||
|  |                     You have'nt created any policy yet. | ||||
|  |                 </p> | ||||
|  |             </field> | ||||
|  |         </record> | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,23 @@ | |||||
|  | Laundry Management v11 | ||||
|  | ====================== | ||||
|  | This module helps you to manage laundry service. | ||||
|  | 
 | ||||
|  | Features | ||||
|  | ======== | ||||
|  | 
 | ||||
|  | * Recording Laundry Order. | ||||
|  | * Assigning Works. | ||||
|  | * Make Invoices. | ||||
|  | * Separate View for Works. | ||||
|  | * Billing Facility for Extra Works. | ||||
|  | * Label Printing for Every Order. | ||||
|  | * Detailed Laundry Work Analysis Report. | ||||
|  | * Access Rights From Multiple Level. | ||||
|  | * Configuration for Washing Type. | ||||
|  | * Configuration for Extra Works (Ironing/Patching etc..). | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | Credits | ||||
|  | ======= | ||||
|  | Developer: Jesni Banu | ||||
|  | Developer: Nilmar Shereef | ||||
| @ -0,0 +1,24 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ################################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions (<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ################################################################################### | ||||
|  | 
 | ||||
|  | from . import models | ||||
|  | from . import reports | ||||
| @ -0,0 +1,49 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ################################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions (<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ################################################################################### | ||||
|  | 
 | ||||
|  | { | ||||
|  |     'name': 'Laundry Management', | ||||
|  |     'version': '12.0.1.0.0', | ||||
|  |     'summary': """Complete Laundry Service Management""", | ||||
|  |     'description': 'This module is very useful to manage all process of laundry service', | ||||
|  |     "category": "Industries", | ||||
|  |     'author': 'Cybrosys Techno Solutions', | ||||
|  |     'company': 'Cybrosys Techno Solutions', | ||||
|  |     'website': "https://www.cybrosys.com", | ||||
|  |     'depends': ['base', 'mail', 'sale', 'account'], | ||||
|  |     'data': [ | ||||
|  |         'data/data.xml', | ||||
|  |         'security/laundry_security.xml', | ||||
|  |         'security/ir.model.access.csv', | ||||
|  |         'views/laundry_view.xml', | ||||
|  |         'views/washing_view.xml', | ||||
|  |         'views/config_view.xml', | ||||
|  |         'views/laundry_report.xml', | ||||
|  |         'views/laundry_label.xml', | ||||
|  |     ], | ||||
|  |     'images': ['static/description/banner.jpg'], | ||||
|  |     'license': 'AGPL-3', | ||||
|  |     'demo': [], | ||||
|  |     'installable': True, | ||||
|  |     'auto_install': False, | ||||
|  |     'application': False, | ||||
|  | } | ||||
| @ -0,0 +1,7 @@ | |||||
|  | <?xml version="1.0" encoding="utf-8" ?> | ||||
|  | <odoo> | ||||
|  |     <record id="laundry_service" model="product.product"> | ||||
|  |         <field name="name">Laundry Service</field> | ||||
|  |         <field name="type">service</field> | ||||
|  |     </record> | ||||
|  | </odoo> | ||||
| @ -0,0 +1,23 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ################################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions (<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ################################################################################### | ||||
|  | 
 | ||||
|  | from . import laundry | ||||
| @ -0,0 +1,395 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ################################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions (<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ################################################################################### | ||||
|  | 
 | ||||
|  | import time | ||||
|  | from datetime import datetime | ||||
|  | from odoo import models, fields, api, _ | ||||
|  | from odoo.exceptions import UserError | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class LaundryManagement(models.Model): | ||||
|  |     _name = 'laundry.order' | ||||
|  |     _inherit = 'mail.thread' | ||||
|  |     _description = "Laundry Order" | ||||
|  |     _order = 'order_date desc, id desc' | ||||
|  | 
 | ||||
|  |     @api.model | ||||
|  |     def create(self, vals): | ||||
|  |         vals['name'] = self.env['ir.sequence'].next_by_code('laundry.order') | ||||
|  |         return super(LaundryManagement, self).create(vals) | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     @api.depends('order_lines') | ||||
|  |     def get_total(self): | ||||
|  |         total = 0 | ||||
|  |         for obj in self: | ||||
|  |             for each in obj.order_lines: | ||||
|  |                 total += each.amount | ||||
|  |             obj.total_amount = total | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def confirm_order(self): | ||||
|  |         self.state = 'order' | ||||
|  |         sale_obj = self.env['sale.order'].create({'partner_id': self.partner_id.id, | ||||
|  |                                                   'partner_invoice_id': self.partner_invoice_id.id, | ||||
|  |                                                   'partner_shipping_id': self.partner_shipping_id.id}) | ||||
|  |         self.sale_obj = sale_obj | ||||
|  |         product_id = self.env.ref('laundry_management.laundry_service') | ||||
|  |         self.env['sale.order.line'].create({'product_id': product_id.id, | ||||
|  |                                             'name': 'Laundry Service', | ||||
|  |                                             'price_unit': self.total_amount, | ||||
|  |                                             'order_id': sale_obj.id | ||||
|  |                                             }) | ||||
|  |         for each in self: | ||||
|  |             for obj in each.order_lines: | ||||
|  |                 self.env['washing.washing'].create({'name': obj.product_id.name + '-Washing', | ||||
|  |                                                     'user_id': obj.washing_type.assigned_person.id, | ||||
|  |                                                     'description': obj.description, | ||||
|  |                                                     'laundry_obj': obj.id, | ||||
|  |                                                     'state': 'draft', | ||||
|  |                                                     'washing_date': datetime.now().strftime('%Y-%m-%d %H:%M:%S')}) | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def create_invoice(self): | ||||
|  |         if self.sale_obj.state in ['draft', 'sent']: | ||||
|  |             self.sale_obj.action_confirm() | ||||
|  |         self.invoice_status = self.sale_obj.invoice_status | ||||
|  |         return { | ||||
|  |             'name': 'Create Invoice', | ||||
|  |             'view_type': 'form', | ||||
|  |             'view_mode': 'form', | ||||
|  |             'res_model': 'sale.advance.payment.inv', | ||||
|  |             'type': 'ir.actions.act_window', | ||||
|  |             'context': {'laundry_sale_obj': self.sale_obj.id}, | ||||
|  |             'target': 'new' | ||||
|  |         } | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def return_dress(self): | ||||
|  |         self.state = 'return' | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def cancel_order(self): | ||||
|  |         self.state = 'cancel' | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def _invoice_count(self): | ||||
|  |         wrk_ordr_ids = self.env['account.invoice'].search([('origin', '=', self.sale_obj.name)]) | ||||
|  |         self.invoice_count = len(wrk_ordr_ids) | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def _work_count(self): | ||||
|  |         wrk_ordr_ids = self.env['washing.washing'].search([('laundry_obj.laundry_obj.id', '=', self.id)]) | ||||
|  |         self.work_count = len(wrk_ordr_ids) | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def action_view_laundry_works(self): | ||||
|  |         work_obj = self.env['washing.washing'].search([('laundry_obj.laundry_obj.id', '=', self.id)]) | ||||
|  |         work_ids = [] | ||||
|  |         for each in work_obj: | ||||
|  |             work_ids.append(each.id) | ||||
|  |         view_id = self.env.ref('laundry_management.washing_form_view').id | ||||
|  |         if work_ids: | ||||
|  |             if len(work_ids) <= 1: | ||||
|  |                 value = { | ||||
|  |                     'view_type': 'form', | ||||
|  |                     'view_mode': 'form', | ||||
|  |                     'res_model': 'washing.washing', | ||||
|  |                     'view_id': view_id, | ||||
|  |                     'type': 'ir.actions.act_window', | ||||
|  |                     'name': _('Works'), | ||||
|  |                     'res_id': work_ids and work_ids[0] | ||||
|  |                 } | ||||
|  |             else: | ||||
|  |                 value = { | ||||
|  |                     'domain': str([('id', 'in', work_ids)]), | ||||
|  |                     'view_type': 'form', | ||||
|  |                     'view_mode': 'tree,form', | ||||
|  |                     'res_model': 'washing.washing', | ||||
|  |                     'view_id': False, | ||||
|  |                     'type': 'ir.actions.act_window', | ||||
|  |                     'name': _('Works'), | ||||
|  |                     'res_id': work_ids | ||||
|  |                 } | ||||
|  | 
 | ||||
|  |             return value | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def action_view_invoice(self): | ||||
|  |         inv_obj = self.env['account.invoice'].search([('origin', '=', self.sale_obj.name)]) | ||||
|  |         inv_ids = [] | ||||
|  |         for each in inv_obj: | ||||
|  |             inv_ids.append(each.id) | ||||
|  |         view_id = self.env.ref('account.invoice_form').id | ||||
|  |         if inv_ids: | ||||
|  |             if len(inv_ids) <= 1: | ||||
|  |                 value = { | ||||
|  |                     'view_type': 'form', | ||||
|  |                     'view_mode': 'form', | ||||
|  |                     'res_model': 'account.invoice', | ||||
|  |                     'view_id': view_id, | ||||
|  |                     'type': 'ir.actions.act_window', | ||||
|  |                     'name': _('Invoice'), | ||||
|  |                     'res_id': inv_ids and inv_ids[0] | ||||
|  |                 } | ||||
|  |             else: | ||||
|  |                 value = { | ||||
|  |                     'domain': str([('id', 'in', inv_ids)]), | ||||
|  |                     'view_type': 'form', | ||||
|  |                     'view_mode': 'tree,form', | ||||
|  |                     'res_model': 'account.invoice', | ||||
|  |                     'view_id': False, | ||||
|  |                     'type': 'ir.actions.act_window', | ||||
|  |                     'name': _('Invoice'), | ||||
|  |                     'res_id': inv_ids | ||||
|  |                 } | ||||
|  | 
 | ||||
|  |             return value | ||||
|  | 
 | ||||
|  |     name = fields.Char(string="Label", copy=False) | ||||
|  |     invoice_status = fields.Selection([ | ||||
|  |         ('upselling', 'Upselling Opportunity'), | ||||
|  |         ('invoiced', 'Fully Invoiced'), | ||||
|  |         ('to invoice', 'To Invoice'), | ||||
|  |         ('no', 'Nothing to Invoice') | ||||
|  |     ], string='Invoice Status', invisible=1, related='sale_obj.invoice_status', store=True) | ||||
|  |     sale_obj = fields.Many2one('sale.order', invisible=1) | ||||
|  |     invoice_count = fields.Integer(compute='_invoice_count', string='# Invoice') | ||||
|  |     work_count = fields.Integer(compute='_work_count', string='# Works') | ||||
|  |     partner_id = fields.Many2one('res.partner', string='Customer', readonly=True, | ||||
|  |                                  states={'draft': [('readonly', False)], 'order': [('readonly', False)]}, required=True, | ||||
|  |                                  change_default=True, index=True, track_visibility='always') | ||||
|  |     partner_invoice_id = fields.Many2one('res.partner', string='Invoice Address', readonly=True, required=True, | ||||
|  |                                          states={'draft': [('readonly', False)], 'order': [('readonly', False)]}, | ||||
|  |                                          help="Invoice address for current sales order.") | ||||
|  |     partner_shipping_id = fields.Many2one('res.partner', string='Delivery Address', readonly=True, required=True, | ||||
|  |                                           states={'draft': [('readonly', False)], 'order': [('readonly', False)]}, | ||||
|  |                                           help="Delivery address for current sales order.") | ||||
|  |     order_date = fields.Datetime(string="Date", default=datetime.now().strftime('%Y-%m-%d %H:%M:%S')) | ||||
|  |     laundry_person = fields.Many2one('res.users', string='Laundry Person', required=1) | ||||
|  |     order_lines = fields.One2many('laundry.order.line', 'laundry_obj', required=1, ondelete='cascade') | ||||
|  |     total_amount = fields.Float(compute='get_total', string='Total', store=1) | ||||
|  |     currency_id = fields.Many2one("res.currency", string="Currency") | ||||
|  |     note = fields.Text(string='Terms and conditions') | ||||
|  |     state = fields.Selection([ | ||||
|  |         ('draft', 'Draft'), | ||||
|  |         ('order', 'Laundry Order'), | ||||
|  |         ('process', 'Processing'), | ||||
|  |         ('done', 'Done'), | ||||
|  |         ('return', 'Returned'), | ||||
|  |         ('cancel', 'Cancelled'), | ||||
|  |     ], string='Status', readonly=True, copy=False, index=True, track_visibility='onchange', default='draft') | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class LaundryManagementLine(models.Model): | ||||
|  |     _name = 'laundry.order.line' | ||||
|  | 
 | ||||
|  |     @api.depends('washing_type', 'extra_work', 'qty') | ||||
|  |     def get_amount(self): | ||||
|  |         for obj in self: | ||||
|  |             total = obj.washing_type.amount*obj.qty | ||||
|  |             for each in obj.extra_work: | ||||
|  |                 total += each.amount*obj.qty | ||||
|  |             obj.amount = total | ||||
|  | 
 | ||||
|  |     product_id = fields.Many2one('product.product', string='Dress', required=1) | ||||
|  |     qty = fields.Integer(string='No of items', required=1) | ||||
|  |     description = fields.Text(string='Description') | ||||
|  |     washing_type = fields.Many2one('washing.type', string='Washing Type', required=1) | ||||
|  |     extra_work = fields.Many2many('washing.work', string='Extra Work') | ||||
|  |     amount = fields.Float(compute='get_amount', string='Amount') | ||||
|  |     laundry_obj = fields.Many2one('laundry.order', invisible=1) | ||||
|  |     state = fields.Selection([ | ||||
|  |         ('draft', 'Draft'), | ||||
|  |         ('wash', 'Washing'), | ||||
|  |         ('extra_work', 'Make Over'), | ||||
|  |         ('done', 'Done'), | ||||
|  |         ('cancel', 'Cancelled'), | ||||
|  |     ], string='Status', readonly=True, copy=False, index=True, default='draft') | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class WashingType(models.Model): | ||||
|  |     _name = 'washing.type' | ||||
|  | 
 | ||||
|  |     name = fields.Char(string='Name', required=1) | ||||
|  |     assigned_person = fields.Many2one('res.users', string='Assigned Person', required=1) | ||||
|  |     amount = fields.Float(string='Service Charge', required=1) | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class ExtraWork(models.Model): | ||||
|  |     _name = 'washing.work' | ||||
|  | 
 | ||||
|  |     name = fields.Char(string='Name', required=1) | ||||
|  |     assigned_person = fields.Many2one('res.users', string='Assigned Person', required=1) | ||||
|  |     amount = fields.Float(string='Service Charge', required=1) | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class Washing(models.Model): | ||||
|  |     _name = 'washing.washing' | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def start_wash(self): | ||||
|  |         if not self.laundry_works: | ||||
|  |             self.laundry_obj.state = 'wash' | ||||
|  |             self.laundry_obj.laundry_obj.state = 'process' | ||||
|  |         for each in self: | ||||
|  |             for obj in each.product_line: | ||||
|  |                 self.env['sale.order.line'].create({'product_id': obj.product_id.id, | ||||
|  |                                                     'name': obj.name, | ||||
|  |                                                     'price_unit': obj.price_unit, | ||||
|  |                                                     'order_id': each.laundry_obj.laundry_obj.sale_obj.id, | ||||
|  |                                                     'product_uom_qty': obj.quantity, | ||||
|  |                                                     'product_uom': obj.uom_id.id, | ||||
|  |                                                     }) | ||||
|  |         self.state = 'process' | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def set_to_done(self): | ||||
|  |         self.state = 'done' | ||||
|  |         f = 0 | ||||
|  |         if not self.laundry_works: | ||||
|  |             if self.laundry_obj.extra_work: | ||||
|  |                 for each in self.laundry_obj.extra_work: | ||||
|  |                     self.create({'name': each.name, | ||||
|  |                                  'user_id': each.assigned_person.id, | ||||
|  |                                  'description': self.laundry_obj.description, | ||||
|  |                                  'laundry_obj': self.laundry_obj.id, | ||||
|  |                                  'state': 'draft', | ||||
|  |                                  'laundry_works': True, | ||||
|  |                                  'washing_date': datetime.now().strftime('%Y-%m-%d %H:%M:%S')}) | ||||
|  |                 self.laundry_obj.state = 'extra_work' | ||||
|  |         laundry_obj = self.search([('laundry_obj.laundry_obj', '=', self.laundry_obj.laundry_obj.id)]) | ||||
|  |         for each in laundry_obj: | ||||
|  |             if each.state != 'done' or each.state == 'cancel': | ||||
|  |                 f = 1 | ||||
|  |                 break | ||||
|  |         if f == 0: | ||||
|  |             self.laundry_obj.laundry_obj.state = 'done' | ||||
|  |         laundry_obj1 = self.search([('laundry_obj', '=', self.laundry_obj.id)]) | ||||
|  |         f1 = 0 | ||||
|  |         for each in laundry_obj1: | ||||
|  |             if each.state != 'done' or each.state == 'cancel': | ||||
|  |                 f1 = 1 | ||||
|  |                 break | ||||
|  |         if f1 == 0: | ||||
|  |             self.laundry_obj.state = 'done' | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     @api.depends('product_line') | ||||
|  |     def get_total(self): | ||||
|  |         total = 0 | ||||
|  |         for obj in self: | ||||
|  |             for each in obj.product_line: | ||||
|  |                 total += each.subtotal | ||||
|  |             obj.total_amount = total | ||||
|  | 
 | ||||
|  |     name = fields.Char(string='Work') | ||||
|  |     laundry_works = fields.Boolean(default=False, invisible=1) | ||||
|  |     user_id = fields.Many2one('res.users', string='Assigned Person') | ||||
|  |     washing_date = fields.Datetime(string='Date') | ||||
|  |     description = fields.Text(string='Description') | ||||
|  |     state = fields.Selection([ | ||||
|  |         ('draft', 'Draft'), | ||||
|  |         ('process', 'Process'), | ||||
|  |         ('done', 'Done'), | ||||
|  |         ('cancel', 'Cancelled'), | ||||
|  |     ], string='Status', readonly=True, copy=False, index=True, default='draft') | ||||
|  |     laundry_obj = fields.Many2one('laundry.order.line', invisible=1) | ||||
|  |     product_line = fields.One2many('wash.order.line', 'wash_obj', string='Products', ondelete='cascade') | ||||
|  |     total_amount = fields.Float(compute='get_total', string='Grand Total') | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class SaleOrderInherit(models.Model): | ||||
|  |     _name = 'wash.order.line' | ||||
|  | 
 | ||||
|  |     @api.depends('price_unit', 'quantity') | ||||
|  |     def compute_amount(self): | ||||
|  |         total = 0 | ||||
|  |         for obj in self: | ||||
|  |             total += obj.price_unit * obj.quantity | ||||
|  |         obj.subtotal = total | ||||
|  | 
 | ||||
|  |     wash_obj = fields.Many2one('washing.washing', string='Order Reference', ondelete='cascade') | ||||
|  |     name = fields.Text(string='Description', required=True) | ||||
|  |     uom_id = fields.Many2one('product.uom', 'Unit of Measure ', required=True) | ||||
|  |     quantity = fields.Integer(string='Quantity') | ||||
|  |     product_id = fields.Many2one('product.product', string='Product') | ||||
|  |     price_unit = fields.Float('Unit Price', default=0.0, related='product_id.list_price') | ||||
|  |     subtotal = fields.Float(compute='compute_amount', string='Subtotal', readonly=True, store=True) | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class LaundryManagementInvoice(models.TransientModel): | ||||
|  |     _inherit = 'sale.advance.payment.inv' | ||||
|  | 
 | ||||
|  |     @api.multi | ||||
|  |     def create_invoices(self): | ||||
|  |         context = self._context | ||||
|  |         if context.get('laundry_sale_obj'): | ||||
|  |             sale_orders = self.env['sale.order'].browse(context.get('laundry_sale_obj')) | ||||
|  |         else: | ||||
|  |             sale_orders = self.env['sale.order'].browse(self._context.get('active_ids', [])) | ||||
|  |         if self.advance_payment_method == 'delivered': | ||||
|  |             sale_orders.action_invoice_create() | ||||
|  |         elif self.advance_payment_method == 'all': | ||||
|  |             sale_orders.action_invoice_create(final=True) | ||||
|  |         else: | ||||
|  |             # Create deposit product if necessary | ||||
|  |             if not self.product_id: | ||||
|  |                 vals = self._prepare_deposit_product() | ||||
|  |                 self.product_id = self.env['product.product'].create(vals) | ||||
|  |                 self.env['ir.values'].sudo().set_default('sale.config.settings', 'deposit_product_id_setting', | ||||
|  |                                                          self.product_id.id) | ||||
|  | 
 | ||||
|  |             sale_line_obj = self.env['sale.order.line'] | ||||
|  |             for order in sale_orders: | ||||
|  |                 if self.advance_payment_method == 'percentage': | ||||
|  |                     amount = order.amount_untaxed * self.amount / 100 | ||||
|  |                 else: | ||||
|  |                     amount = self.amount | ||||
|  |                 if self.product_id.invoice_policy != 'order': | ||||
|  |                     raise UserError(_( | ||||
|  |                         'The product used to invoice a down payment should have an invoice policy set to "Ordered' | ||||
|  |                         ' quantities". Please update your deposit product to be able to create a deposit invoice.')) | ||||
|  |                 if self.product_id.type != 'service': | ||||
|  |                     raise UserError(_( | ||||
|  |                         "The product used to invoice a down payment should be of type 'Service'. Please use another " | ||||
|  |                         "product or update this product.")) | ||||
|  |                 taxes = self.product_id.taxes_id.filtered( | ||||
|  |                     lambda r: not order.company_id or r.company_id == order.company_id) | ||||
|  |                 if order.fiscal_position_id and taxes: | ||||
|  |                     tax_ids = order.fiscal_position_id.map_tax(taxes).ids | ||||
|  |                 else: | ||||
|  |                     tax_ids = taxes.ids | ||||
|  |                 so_line = sale_line_obj.create({ | ||||
|  |                     'name': _('Advance: %s') % (time.strftime('%m %Y'),), | ||||
|  |                     'price_unit': amount, | ||||
|  |                     'product_uom_qty': 0.0, | ||||
|  |                     'order_id': order.id, | ||||
|  |                     'discount': 0.0, | ||||
|  |                     'product_uom': self.product_id.uom_id.id, | ||||
|  |                     'product_id': self.product_id.id, | ||||
|  |                     'tax_id': [(6, 0, tax_ids)], | ||||
|  |                 }) | ||||
|  |                 self._create_invoice(order, so_line, amount) | ||||
|  |         if self._context.get('open_invoices', False): | ||||
|  |             return sale_orders.action_view_invoice() | ||||
|  |         return {'type': 'ir.actions.act_window_close'} | ||||
| @ -0,0 +1,23 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ################################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions (<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ################################################################################### | ||||
|  | 
 | ||||
|  | from . import laundry_report | ||||
| @ -0,0 +1,98 @@ | |||||
|  | # -*- coding: utf-8 -*- | ||||
|  | ################################################################################### | ||||
|  | # | ||||
|  | #    Cybrosys Technologies Pvt. Ltd. | ||||
|  | #    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | ||||
|  | #    Author: Cybrosys Techno Solutions (<https://www.cybrosys.com>) | ||||
|  | # | ||||
|  | #    This program is free software: you can modify | ||||
|  | #    it under the terms of the GNU Affero General Public License (AGPL) as | ||||
|  | #    published by the Free Software Foundation, either version 3 of the | ||||
|  | #    License, or (at your option) any later version. | ||||
|  | # | ||||
|  | #    This program is distributed in the hope that it will be useful, | ||||
|  | #    but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  | #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  | #    GNU Affero General Public License for more details. | ||||
|  | # | ||||
|  | #    You should have received a copy of the GNU Affero General Public License | ||||
|  | #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  | # | ||||
|  | ################################################################################### | ||||
|  | 
 | ||||
|  | from odoo import models, fields, tools | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | class DifferedCheckHistory(models.Model): | ||||
|  |     _name = "report.laundry.order" | ||||
|  |     _description = "Laundry Order Analysis" | ||||
|  |     _auto = False | ||||
|  | 
 | ||||
|  |     name = fields.Char(string="Label") | ||||
|  |     invoice_status = fields.Selection([ | ||||
|  |         ('upselling', 'Upselling Opportunity'), | ||||
|  |         ('invoiced', 'Fully Invoiced'), | ||||
|  |         ('to invoice', 'To Invoice'), | ||||
|  |         ('no', 'Nothing to Invoice') | ||||
|  |     ], string='Invoice Status', store=True) | ||||
|  |     partner_id = fields.Many2one('res.partner', string='Customer') | ||||
|  |     partner_invoice_id = fields.Many2one('res.partner', string='Invoice Address') | ||||
|  |     partner_shipping_id = fields.Many2one('res.partner', string='Delivery Address') | ||||
|  |     order_date = fields.Datetime(string="Date") | ||||
|  |     laundry_person = fields.Many2one('res.users', string='Laundry Person') | ||||
|  |     total_amount = fields.Float(string='Total') | ||||
|  |     currency_id = fields.Many2one("res.currency", string="Currency") | ||||
|  |     state = fields.Selection([ | ||||
|  |         ('draft', 'Draft'), | ||||
|  |         ('order', 'Laundry Order'), | ||||
|  |         ('process', 'Processing'), | ||||
|  |         ('done', 'Done'), | ||||
|  |         ('return', 'Returned'), | ||||
|  |         ('cancel', 'Cancelled'), | ||||
|  |     ], string='Status') | ||||
|  | 
 | ||||
|  |     _order = 'name desc' | ||||
|  | 
 | ||||
|  |     def _select(self): | ||||
|  |         select_str = """ | ||||
|  |              SELECT | ||||
|  |                     (select 1 ) AS nbr, | ||||
|  |                     t.id as id, | ||||
|  |                     t.name as name, | ||||
|  |                     t.invoice_status as invoice_status, | ||||
|  |                     t.partner_id as partner_id, | ||||
|  |                     t.partner_invoice_id as partner_invoice_id, | ||||
|  |                     t.partner_shipping_id as partner_shipping_id, | ||||
|  |                     t.order_date as order_date, | ||||
|  |                     t.laundry_person as laundry_person, | ||||
|  |                     t.total_amount as total_amount, | ||||
|  |                     t.currency_id as currency_id, | ||||
|  |                     t.state as state | ||||
|  |         """ | ||||
|  |         return select_str | ||||
|  | 
 | ||||
|  |     def _group_by(self): | ||||
|  |         group_by_str = """ | ||||
|  |                 GROUP BY | ||||
|  |                     t.id, | ||||
|  |                     name, | ||||
|  |                     invoice_status, | ||||
|  |                     partner_id, | ||||
|  |                     partner_invoice_id, | ||||
|  |                     partner_shipping_id, | ||||
|  |                     order_date, | ||||
|  |                     laundry_person, | ||||
|  |                     total_amount, | ||||
|  |                     currency_id, | ||||
|  |                     state | ||||
|  |         """ | ||||
|  |         return group_by_str | ||||
|  | 
 | ||||
|  |     def init(self): | ||||
|  |         tools.sql.drop_view_if_exists(self._cr, 'report_laundry_order') | ||||
|  |         self._cr.execute(""" | ||||
|  |             CREATE view report_laundry_order as | ||||
|  |               %s | ||||
|  |               FROM laundry_order t | ||||
|  |                 %s | ||||
|  |         """ % (self._select(), self._group_by())) | ||||
| 
 | 
| @ -0,0 +1,22 @@ | |||||
|  | <?xml version="1.0" ?> | ||||
|  | <odoo> | ||||
|  |     <data> | ||||
|  | 
 | ||||
|  |         <record id="module_laundry_category" model="ir.module.category"> | ||||
|  |             <field name="name">Laundry</field> | ||||
|  |             <field name="sequence">18</field> | ||||
|  |         </record> | ||||
|  |         <record id="laundry_group_user" model="res.groups"> | ||||
|  |             <field name="name">User</field> | ||||
|  |             <field name="category_id" ref="module_laundry_category"/> | ||||
|  |             <field name="implied_ids" eval="[(4, ref('base.group_user')), (4, ref('account.group_account_user'))]"/> | ||||
|  |         </record> | ||||
|  |         <record id="laundry_group_manager" model="res.groups"> | ||||
|  |             <field name="name">Manager</field> | ||||
|  |             <field name="implied_ids" eval="[(4, ref('laundry_group_user'))]"/> | ||||
|  |             <field name="category_id" ref="module_laundry_category"/> | ||||
|  |             <field name="users" eval="[(4, ref('base.user_root'))]"/> | ||||
|  |         </record> | ||||
|  | 
 | ||||
|  |     </data> | ||||
|  | </odoo> | ||||
| After Width: | Height: | Size: 30 KiB | 
| After Width: | Height: | Size: 124 KiB | 
| After Width: | Height: | Size: 50 KiB | 
| After Width: | Height: | Size: 25 KiB | 
| After Width: | Height: | Size: 17 KiB | 
| @ -0,0 +1,222 @@ | |||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <h2 class="oe_slogan">Laundry Service Management</h2> | ||||
|  |         <h3 class="oe_slogan">Cybrosys Industrial Module Which Helps You To Manage Laundry Service</h3> | ||||
|  |         <h4 class="oe_slogan"><a href="https://www.cybrosys.com">Cybrosys Technologies</a> </h4> | ||||
|  |     </div> | ||||
|  |     <div class="oe_row oe_spaced" style="padding-left:65px;"> | ||||
|  |         <h4>Features:</h4> | ||||
|  |         <div> | ||||
|  |             <span style="color:green;"> ☑ </span> Recording Laundry Order.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Assigning Works.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Make Invoices.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Separate View for Works.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Billing Facility for Extra Works.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Label Printing for Every Order.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Detailed Laundry Work Analysis Report.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Access Rights From Multiple Level.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Configuration for Washing Type.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Configuration for Extra Works (Ironing/Patching etc..).<br/> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div class="oe_picture"> | ||||
|  |             <h3 class="oe_slogan">Overview</h3> | ||||
|  |             <p class="oe_mt32" style="text-align: center;"> | ||||
|  |                 This is an industrial specific module by <a href="https://www.cybrosys.com">Cybrosys Technologies</a> | ||||
|  |                 for Laundry Management. It manages | ||||
|  |                 the laundry process with assigning works to workers. | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <h3 class="oe_slogan">Recording Laundry Order</h3> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <p> | ||||
|  |                 <h4>Laundry Management -> Laundry Management -> Laundry Order</h4> | ||||
|  |             <p> | ||||
|  |              <span style="text-align: center;padding-left:65px;">☛ When you install this module, an extra menu | ||||
|  |                 Laundry Management will created in main menu. You | ||||
|  |                 can see the different sub menus under the main menu. Here you | ||||
|  |                  can create Laundry Order via clicking the 'Create' button. There you can specify the customer, laundry person, | ||||
|  |                  order lines with washing type and Extra works for your order. | ||||
|  |              </span> | ||||
|  |         </div> | ||||
|  |         <div style="text-align: center"> | ||||
|  |                 <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                     <img style="border:10px solid white;height: 400px;" src="laundry_order.png"> | ||||
|  |                 </div> | ||||
|  |         </div> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <div style="padding-left:65px;"> | ||||
|  |                  <span>☛ When you confirm the Laundry Order the corresponding works will created under the | ||||
|  |                      assigned person. There you can add extra products also. It will also add in Billing.</span> | ||||
|  |             </div> | ||||
|  |             <div class="oe_row oe_padded"> | ||||
|  |                 <div class="oe_span6"> | ||||
|  |                     <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                         <img style="border:10px solid white;" src="laundr_work.png"> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="oe_span6"> | ||||
|  |                     <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                         <img style="border:10px solid white;" src="demo_work.png"> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Laundry Label</h3> | ||||
|  |        <div class="" style="text-align: center"> | ||||
|  |            <div style="padding-left:65px;"> | ||||
|  |                  <span>☛ You can print label for each order from the print menu.</span> | ||||
|  |              </div> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="label.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Laundry Works</h3> | ||||
|  |        <div class="" style="text-align: center"> | ||||
|  |              <div class="" style="text-align: center"> | ||||
|  |                 <p> | ||||
|  |                     <h4>Laundry Management -> Laundry Management -> Laundry Works</h4> | ||||
|  |                 <p> | ||||
|  |             </div> | ||||
|  |            <div style="padding-left:65px;"> | ||||
|  |                  <span>☛ This is the Separate Laundry Works Form. Here you can see the work status of Laundry Works.</span> | ||||
|  |              </div> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="order.png"> | ||||
|  |             </div> | ||||
|  |            <div style="padding-left:65px;"> | ||||
|  |                  <span>☛ If there is any extra works , it will created as work When you finish the main work. Then we can see the | ||||
|  |                  status of that order line is become 'Make Over'.</span> | ||||
|  |              </div> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="makeover.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Invoice</h3> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span>☛ | ||||
|  |                  You can create Invoice via the button 'Create Invoice' when the order reaches to 'Done' state. | ||||
|  |             </span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="invoice1.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span>☛ | ||||
|  |                  You can see all the Invoice through the smart button "Invoices" from the Laundry Order form. | ||||
|  |             </span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="invoice.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Configuration</h3> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span>☛ | ||||
|  |                  You can configure washing types from the menu Laundry Management -> Configuration -> Washing Type by | ||||
|  |                 specifying the name, assigned person and service charge | ||||
|  |             </span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="washing_type.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |          <div class="" style="text-align: center oe_dark"> | ||||
|  |             <span>☛ | ||||
|  |                  You can configure additional works from the menu Laundry Management -> Configuration -> Additional Works by | ||||
|  |                 specifying the name, assigned person and service charge | ||||
|  |             </span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="additional.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Laundry Work Analysis Report</h3> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span>☛ | ||||
|  |                  You can also analyse your all Laundry Works from Laundry Management -> Report -> Laundry Order Analysis. | ||||
|  |             </span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="laundry_report.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Access Rights</h3> | ||||
|  |         <div class="" style="padding-left:65px;"> | ||||
|  |             <span>☛Laundry Manager :- Laundry manager have all the access across the fleet rental management <br/></span> | ||||
|  |             <span>☛Laundry User :- Laundry user can read, write and create the records.</span> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <br/> | ||||
|  |     <h2 class="oe_slogan" style="margin-top:20px;" >You Looking for a functional Documentation of this Application.?</h2> | ||||
|  |     <h3 class="oe_slogan">Give a Request Mail to:  <i class="fa fa-envelope" aria-hidden="true"></i>  <a href="#" style="color:blue;">odoo@cybrosys.com</a></h3> | ||||
|  | <br/> | ||||
|  | <br/> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  | 		<h2 class="oe_slogan" style="margin-top:20px;" >Need Any Help?</h2> | ||||
|  | 		<div class="oe_slogan" style="margin-top:10px !important;"> | ||||
|  |             <div> | ||||
|  | 				<a  class="btn btn-primary btn-lg mt8" | ||||
|  | 				style="color: #FFFFFF !important;border-radius: 0;" href="http://www.cybrosys.com"><i | ||||
|  | 				class="fa fa-envelope"></i> Email </a> <a | ||||
|  | 				class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | ||||
|  | 				href="http://www.cybrosys.com/contact/"><i | ||||
|  | 				class="fa fa-phone"></i> Contact Us </a> <a | ||||
|  | 				class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | ||||
|  | 				href="http://www.cybrosys.com/odoo-customization-and-installation/"><i | ||||
|  | 				class="fa fa-check-square"></i> Request Customization </a> | ||||
|  | 	        </div> | ||||
|  |             <br> | ||||
|  | 		    <img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block"> | ||||
|  |             <div> | ||||
|  | 			  <a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;"></i></a></td> | ||||
|  |               <a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |               <a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px;padding-left: 8px;"></i></a></td> | ||||
|  |               <a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |               <a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |             </div> | ||||
|  | 		</div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
| @ -0,0 +1,222 @@ | |||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <h2 class="oe_slogan">Laundry Service Management</h2> | ||||
|  |         <h3 class="oe_slogan">Cybrosys Industrial Module Which Helps You To Manage Laundry Service</h3> | ||||
|  |         <h4 class="oe_slogan"><a href="https://www.cybrosys.com">Cybrosys Technologies</a> </h4> | ||||
|  |     </div> | ||||
|  |     <div class="oe_row oe_spaced" style="padding-left:65px;"> | ||||
|  |         <h4>Features:</h4> | ||||
|  |         <div> | ||||
|  |             <span style="color:green;"> ☑ </span> Recording Laundry Order.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Assigning Works.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Make Invoices.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Separate View for Works.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Billing Facility for Extra Works.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Label Printing for Every Order.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Detailed Laundry Work Analysis Report.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Access Rights From Multiple Level.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Configuration for Washing Type.<br/> | ||||
|  |             <span style="color:green;"> ☑ </span> Configuration for Extra Works (Ironing/Patching etc..).<br/> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <div class="oe_picture"> | ||||
|  |             <h3 class="oe_slogan">Overview</h3> | ||||
|  |             <p class="oe_mt32" style="text-align: center;"> | ||||
|  |                 This is an industrial specific module by <a href="https://www.cybrosys.com">Cybrosys Technologies</a> | ||||
|  |                 for Laundry Management. It manages | ||||
|  |                 the laundry process with assigning works to workers. | ||||
|  |             </p> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |         <h3 class="oe_slogan">Recording Laundry Order</h3> | ||||
|  |         <div style="text-align: center"> | ||||
|  |             <p> | ||||
|  |                 <h4>Laundry Management -> Laundry Management -> Laundry Order</h4> | ||||
|  |             <p> | ||||
|  |              <span style="text-align: center;padding-left:65px;">☛ When you install this module, an extra menu | ||||
|  |                 Laundry Management will created in main menu. You | ||||
|  |                 can see the different sub menus under the main menu. Here you | ||||
|  |                  can create Laundry Order via clicking the 'Create' button. There you can specify the customer, laundry person, | ||||
|  |                  order lines with washing type and Extra works for your order. | ||||
|  |              </span> | ||||
|  |         </div> | ||||
|  |         <div style="text-align: center"> | ||||
|  |                 <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                     <img style="border:10px solid white;height: 400px;" src="laundry_order.png"> | ||||
|  |                 </div> | ||||
|  |         </div> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <div style="padding-left:65px;"> | ||||
|  |                  <span>☛ When you confirm the Laundry Order the corresponding works will created under the | ||||
|  |                      assigned person. There you can add extra products also. It will also add in Billing.</span> | ||||
|  |             </div> | ||||
|  |             <div class="oe_row oe_padded"> | ||||
|  |                 <div class="oe_span6"> | ||||
|  |                     <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                         <img style="border:10px solid white;" src="laundr_work.png"> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |                 <div class="oe_span6"> | ||||
|  |                     <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                         <img style="border:10px solid white;" src="demo_work.png"> | ||||
|  |                     </div> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Laundry Label</h3> | ||||
|  |        <div class="" style="text-align: center"> | ||||
|  |            <div style="padding-left:65px;"> | ||||
|  |                  <span>☛ You can print label for each order from the print menu.</span> | ||||
|  |              </div> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="label.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Laundry Works</h3> | ||||
|  |        <div class="" style="text-align: center"> | ||||
|  |              <div class="" style="text-align: center"> | ||||
|  |                 <p> | ||||
|  |                     <h4>Laundry Management -> Laundry Management -> Laundry Works</h4> | ||||
|  |                 <p> | ||||
|  |             </div> | ||||
|  |            <div style="padding-left:65px;"> | ||||
|  |                  <span>☛ This is the Separate Laundry Works Form. Here you can see the work status of Laundry Works.</span> | ||||
|  |              </div> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="order.png"> | ||||
|  |             </div> | ||||
|  |            <div style="padding-left:65px;"> | ||||
|  |                  <span>☛ If there is any extra works , it will created as work When you finish the main work. Then we can see the | ||||
|  |                  status of that order line is become 'Make Over'.</span> | ||||
|  |              </div> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;" src="makeover.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Invoice</h3> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span>☛ | ||||
|  |                  You can create Invoice via the button 'Create Invoice' when the order reaches to 'Done' state. | ||||
|  |             </span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="invoice1.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span>☛ | ||||
|  |                  You can see all the Invoice through the smart button "Invoices" from the Laundry Order form. | ||||
|  |             </span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="invoice.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Configuration</h3> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span>☛ | ||||
|  |                  You can configure washing types from the menu Laundry Management -> Configuration -> Washing Type by | ||||
|  |                 specifying the name, assigned person and service charge | ||||
|  |             </span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="washing_type.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |          <div class="" style="text-align: center"> | ||||
|  |             <span>☛ | ||||
|  |                  You can configure additional works from the menu Laundry Management -> Configuration -> Additional Works by | ||||
|  |                 specifying the name, assigned person and service charge | ||||
|  |             </span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="additional.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Laundry Work Analysis Report</h3> | ||||
|  |         <div class="" style="text-align: center"> | ||||
|  |             <span>☛ | ||||
|  |                  You can also analyse your all Laundry Works from Laundry Management -> Report -> Laundry Order Analysis. | ||||
|  |             </span> | ||||
|  |             <div class="oe_demo oe_picture oe_screenshot"> | ||||
|  |                 <img style="border:10px solid white;height:400px;" src="laundry_report.png"> | ||||
|  |             </div> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <div class="oe_row oe_spaced"> | ||||
|  |        <h3 class="oe_slogan">Access Rights</h3> | ||||
|  |         <div class="" style="padding-left:65px;"> | ||||
|  |             <span>☛Laundry Manager :- Laundry manager have all the access across the fleet rental management <br/></span> | ||||
|  |             <span>☛Laundry User :- Laundry user can read, write and create the records.</span> | ||||
|  |         </div> | ||||
|  |     </div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container"> | ||||
|  |     <br/> | ||||
|  |     <h2 class="oe_slogan" style="margin-top:20px;" >You Looking for a functional Documentation of this Application.?</h2> | ||||
|  |     <h3 class="oe_slogan">Give a Request Mail to:  <i class="fa fa-envelope" aria-hidden="true"></i>  <a href="#" style="color:blue;">odoo@cybrosys.com</a></h3> | ||||
|  | <br/> | ||||
|  | <br/> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | <section class="oe_container oe_dark"> | ||||
|  | 		<h2 class="oe_slogan" style="margin-top:20px;" >Need Any Help?</h2> | ||||
|  | 		<div class="oe_slogan" style="margin-top:10px !important;"> | ||||
|  |             <div> | ||||
|  | 				<a  class="btn btn-primary btn-lg mt8" | ||||
|  | 				style="color: #FFFFFF !important;border-radius: 0;" href="http://www.cybrosys.com"><i | ||||
|  | 				class="fa fa-envelope"></i> Email </a> <a | ||||
|  | 				class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | ||||
|  | 				href="http://www.cybrosys.com/contact/"><i | ||||
|  | 				class="fa fa-phone"></i> Contact Us </a> <a | ||||
|  | 				class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | ||||
|  | 				href="http://www.cybrosys.com/odoo-customization-and-installation/"><i | ||||
|  | 				class="fa fa-check-square"></i> Request Customization </a> | ||||
|  | 	        </div> | ||||
|  |             <br> | ||||
|  | 		    <img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block"> | ||||
|  |             <div> | ||||
|  | 			  <a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;"></i></a></td> | ||||
|  |               <a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |               <a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px;padding-left: 8px;"></i></a></td> | ||||
|  |               <a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |               <a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;"></i></a></td> | ||||
|  |             </div> | ||||
|  | 		</div> | ||||
|  | </section> | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||