| @ -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 | |||
| n/vc57w1a9aUAUyOjo6+P5/PP5rL5e7M5XLXZDIZ7jK6u09EfRn+cgkBl/ndMvNsc2x+QgjU63XR | |||
| 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 | |||
|             </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 | |||
| n/vc57w1a9aUAUyOjo6+P5/PP5rL5e7M5XLXZDIZ7jK6u09EfRn+cgkBl/ndMvNsc2x+QgjU63XR | |||
| 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 | |||
|             </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> | |||
| 
 | |||
| 
 | |||
| 
 | |||