diff --git a/fleet_rental/README.rst b/fleet_rental/README.rst new file mode 100755 index 000000000..da8a39ed6 --- /dev/null +++ b/fleet_rental/README.rst @@ -0,0 +1,33 @@ +Fleet Rental Management v12 +=========================== +This module will helps you to give the vehicles for Rent. + + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: Avinash NK @ cybrosys, odoo@cybrosys.com + + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. diff --git a/fleet_rental/__init__.py b/fleet_rental/__init__.py new file mode 100755 index 000000000..41033fcb1 --- /dev/null +++ b/fleet_rental/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technogies @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import models +from . import reports diff --git a/fleet_rental/__manifest__.py b/fleet_rental/__manifest__.py new file mode 100755 index 000000000..f9b9a8149 --- /dev/null +++ b/fleet_rental/__manifest__.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technogies @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +{ + 'name': 'Fleet Rental Management', + 'version': '13.0.1.0.0', + 'summary': """This module will helps you to give the vehicles for Rent.""", + 'description': "Module Helps You To Manage Rental Contracts, Odoo13, Odoo 13, Fleet, Rental, Rent, Vehicle management", + '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.png'], + 'license': 'AGPL-3', + 'installable': True, + 'application': True, +} diff --git a/fleet_rental/data/fleet_rental_data.xml b/fleet_rental/data/fleet_rental_data.xml new file mode 100755 index 000000000..b01dfd458 --- /dev/null +++ b/fleet_rental/data/fleet_rental_data.xml @@ -0,0 +1,759 @@ + + + + + + Fleet Rental Service + service + + + In shop + 1 + + + + Active + 2 + + + + Inactive + 3 + + + + Sold + 4 + + + + Rent + 3 + + + + User can only see his/her vehicle + + + + + + + [] + + + + + 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 +bDaPNxqN5+r1+lc6nc43Pc+bnZqaWvzYxz4mLkvFUnrdlAqAVUBPPfXUGIAN5XL5RwqFwsOFQuH2 +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 + + + + + \ No newline at end of file diff --git a/fleet_rental/data/fleet_rental_data.xml~ b/fleet_rental/data/fleet_rental_data.xml~ new file mode 100755 index 000000000..85af91409 --- /dev/null +++ b/fleet_rental/data/fleet_rental_data.xml~ @@ -0,0 +1,738 @@ + + + + + Fleet Rental Service + service + + + + Rent + 3 + + + + User can only see his/her vehicle + + + + + + + [] + + + + + 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 +bDaPNxqN5+r1+lc6nc43Pc+bnZqaWvzYxz4mLkvFUnrdlAqAVUBPPfXUGIAN5XL5RwqFwsOFQuH2 +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 + + + + \ No newline at end of file diff --git a/fleet_rental/doc/RELEASE_NOTES.md b/fleet_rental/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..775312f3f --- /dev/null +++ b/fleet_rental/doc/RELEASE_NOTES.md @@ -0,0 +1,10 @@ +## Module + +#### 06.16.2019 +#### Version 13.0.1.0.0 +#### ADD +Initial Commit for Fleet Rental Management + + + + diff --git a/fleet_rental/models/__init__.py b/fleet_rental/models/__init__.py new file mode 100755 index 000000000..3fc1d3acd --- /dev/null +++ b/fleet_rental/models/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technogies @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import car_rental +from . import fleet + + diff --git a/fleet_rental/models/car_rental.py b/fleet_rental/models/car_rental.py new file mode 100755 index 000000000..892fc9df5 --- /dev/null +++ b/fleet_rental/models/car_rental.py @@ -0,0 +1,619 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technogies @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +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: + print("fleet_obj", i.read()) + for each in i.rental_reserved_time: + + if str(each.date_from) <= str(self.rent_start_date) <= str(each.date_to): + i.write({'rental_check_availability': False}) + elif str(self.rent_start_date) < str(each.date_from): + if str(each.date_from) <= str(self.rent_end_date) <= str(each.date_to): + i.write({'rental_check_availability': False}) + elif str(self.rent_end_date) > str(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_128', string="Image of Vehicle") + reserved_fleet_id = fields.Many2one('rental.fleet.reserved', invisible=True, copy=False) + 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.move', 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') + + def action_run(self): + self.state = 'running' + + @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.") + + def set_to_done(self): + invoice_ids = self.env['account.move'].search([('invoice_origin', '=', self.name)]) + print("self.name",self.name) + f = 0 + for each in invoice_ids: + if each.invoice_payment_state != 'paid': + f = 1 + break + if f == 0: + self.state = 'done' + else: + raise UserError("Some Invoices are pending") + + def _invoice_count(self): + invoice_ids = self.env['account.move'].search([('invoice_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_rental.vehicle_state_active').id + self.vehicle_id.write({'state_id': state_id}) + elif self.state == "invoice": + self.rent_end_date = fields.Date.today() + state_id = self.env.ref('fleet_rental.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 + + def fleet_scheduler1(self, rent_date): + inv_obj = self.env['account.move'] + inv_line_obj = self.env['account.move.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, + 'ref': 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, + 'invoice_origin': self.name, + # 'company_id': self.account_type.company_id.id, + 'invoice_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, + 'move_id': inv_id.id, + } + inv_line_obj.update(inv_line_data) + mail_content = _( + '

Reminder Recurrent Payment!


Hi %s,
This is to remind you that the ' + 'recurrent payment for the ' + 'rental contract has to be done.' + 'Please make the payment at the earliest.' + '

' + 'Please find the details below:

' + '' + '' + '' + '
Contract Ref %s
Amount %s
Due Date %s
Responsible Person %s, %s
') % \ + (self.customer_id.name, self.name, inv_id.amount_total, inv_id.invoice_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.move'] + inv_line_obj = self.env['account.move.line'] + recurring_obj = self.env['fleet.rental.line'] + today = date.today() + for records in self.search([]): + start_date = datetime.strptime(str(records.rent_start_date), '%Y-%m-%d').date() + end_date = datetime.strptime(str(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, + 'ref': 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, + 'invoice_origin': records.name, + 'company_id': records.account_type.company_id.id, + 'invoice_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, + 'move_id': inv_id.id, + + } + inv_line_obj.update(inv_line_data) + mail_content = _( + '

Reminder Recurrent Payment!


Hi %s,
This is to remind you that the ' + 'recurrent payment for the ' + 'rental contract has to be done.' + 'Please make the payment at the earliest.' + '

' + 'Please find the details below:

' + '
' + '' + '' + '
Contract Ref %s
Amount %s
Due Date %s
Responsible Person %s, %s
') % \ + (self.customer_id.name, self.name, inv_id.amount_total, inv_id.invoice_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" + + def action_verify(self): + self.state = "invoice" + self.reserved_fleet_id.unlink() + self.rent_end_date = fields.Date.today() + if self.total_cost != 0: + inv_obj = self.env['account.move'] + inv_line_obj = self.env['account.move.line'] + supplier = self.customer_id + inv_data = { + 'name': supplier.name, + 'ref': 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, + 'invoice_origin': self.name, + 'company_id': self.account_type.company_id.id, + 'invoice_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, + 'move_id': inv_id.id, + } + inv_line_obj.update(inv_line_data) + imd = self.env['ir.model.data'] + action = imd.xmlid_to_object('account.view_move_tree') + list_view_id = self.env.ref('account.view_move_form', False) + form_view_id = self.env.ref('account.view_move_tree', False) + result = { + 'domain': "[('id', '=', " + str(inv_id) + ")]", + 'name': 'Fleet Rental Invoices', + 'view_mode': 'form', + 'res_model': 'account.move', + 'type': 'ir.actions.act_window', + 'views': [(list_view_id.id, 'tree'), (form_view_id.id, '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.move', + # } + 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 + + 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 = _('

Order Confirmed!


Hi %s,
This is to notify that your rental contract has ' + 'been confirmed.

' + 'Please find the details below:

' + '
' + '' + '
Reference Number %s
Time Range %s to %s
Vehicle %s
Point Of Contact %s , %s
') % \ + (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() + + def action_cancel(self): + self.state = "cancel" + if self.reserved_fleet_id: + self.reserved_fleet_id.unlink() + + def force_checking(self): + self.state = "checking" + + def action_view_invoice(self): + inv_obj = self.env['account.move'].search([('invoice_origin', '=', self.name)]) + inv_ids = [] + for each in inv_obj: + inv_ids.append(each.id) + view_id = self.env.ref('account.view_move_form').id + if inv_ids: + if len(inv_ids) <= 1: + value = { + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'account.move', + '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.move', + 'view_id': False, + 'type': 'ir.actions.act_window', + 'name': _('Invoice'), + 'res_id': inv_ids + } + + return value + + 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.move'] + inv_line_obj = self.env['account.move.line'] + supplier = self.customer_id + inv_data = { + 'name': supplier.name, + 'ref': supplier.name, + 'type': 'out_invoice', + # '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, + 'invoice_origin': self.name, + 'company_id': self.account_type.company_id.id, + 'invoice_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)) + + if inv_id: + list_value = [(0, 0, { + 'name': self.vehicle_id.name, + 'price_unit': self.first_payment, + 'quantity': 1.0, + 'account_id': income_account, + 'product_id': product_id.id, + 'move_id': inv_id.id, + })] + inv_id.write({'invoice_line_ids': list_value}) + mail_content = _( + '

First Payment Received!


Hi %s,
This is to notify that your first payment has ' + 'been received.

' + 'Please find the details below:

' + '
' + '
Invoice Number %s
Date %s
Amount %s
') % ( + self.customer_id.name, inv_id.invoice_payment_ref, inv_id.invoice_date, inv_id.amount_total) + main_content = { + 'subject': _('Payment Received: %s') % inv_id.invoice_payment_ref, + '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_move_out_invoice_type') + result = { + 'name': action.name, + 'type': 'ir.actions.act_window', + 'views': [[False, 'form']], + 'target': 'current', + 'res_id': inv_id.id, + 'res_model': 'account.move', + } + 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.move', string='Invoice Ref') + date_due = fields.Date(string='Due Date', related='invoice_ref.invoice_date_due') + + def paid_info(self): + for each in self: + if self.env['account.move'].browse(each.invoice_number): + each.payment_info = self.env['account.move'].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") diff --git a/fleet_rental/models/fleet.py b/fleet_rental/models/fleet.py new file mode 100755 index 000000000..3b68746ab --- /dev/null +++ b/fleet_rental/models/fleet.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technogies @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +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 !")] diff --git a/fleet_rental/reports/__init__.py b/fleet_rental/reports/__init__.py new file mode 100755 index 000000000..b4763fa42 --- /dev/null +++ b/fleet_rental/reports/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technogies @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import rental_report + diff --git a/fleet_rental/reports/rental_report.py b/fleet_rental/reports/rental_report.py new file mode 100755 index 000000000..d85bbcb02 --- /dev/null +++ b/fleet_rental/reports/rental_report.py @@ -0,0 +1,103 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Cybrosys Technogies @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +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())) diff --git a/fleet_rental/reports/rental_report.xml b/fleet_rental/reports/rental_report.xml new file mode 100755 index 000000000..5986c2ca1 --- /dev/null +++ b/fleet_rental/reports/rental_report.xml @@ -0,0 +1,26 @@ + + + + + + report.fleet.rental.pivot + report.fleet.rental + + + + + + + + + Fleet Rental Analysis + report.fleet.rental + pivot + {'group_by_no_leaf':1,'group_by':[]} + This report allows you to analyse the performance of your Fleet Rental. + + + + + + \ No newline at end of file diff --git a/fleet_rental/security/ir.model.access.csv b/fleet_rental/security/ir.model.access.csv new file mode 100755 index 000000000..0af30bfe7 --- /dev/null +++ b/fleet_rental/security/ir.model.access.csv @@ -0,0 +1,29 @@ +id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink +fleet_car_rental_contract_access_right_user,fleet_car_rental_contract_access_right,model_car_rental_contract,rental_group_user,1,1,1,0 +fleet_car_rental_contract_access_right_manager,fleet_car_rental_contract_access_right1,model_car_rental_contract,fleet.fleet_group_manager,1,1,1,1 +fleet_fleet_rental_line_access_right_user,fleet_fleet_rental_line_access_right,model_fleet_rental_line,rental_group_user,1,1,1,0 +fleet_fleet_rental_line_access_right_manager,fleet_fleet_rental_line_access_right1,model_fleet_rental_line,fleet.fleet_group_manager,1,1,1,1 +fleet_car_rental_checklist_access_right_user,fleet_car_rental_checklist_access_right,model_car_rental_checklist,rental_group_user,1,1,1,0 +fleet_car_rental_checklist_access_right_manager,fleet_car_rental_checklist_access_right1,model_car_rental_checklist,fleet.fleet_group_manager,1,1,1,1 +fleet_car_tools_access_right_user,fleet_car_tools_access_right,model_car_tools,rental_group_user,1,1,1,0 +fleet_car_tools_contract_access_right_manager,fleet_car_tools_access_right1,model_car_tools,fleet.fleet_group_manager,1,1,1,1 +fleet_report_fleet_rental_access_right_user,fleet_report_fleet_rental_access_right,model_report_fleet_rental,rental_group_user,1,1,1,0 +fleet_report_fleet_rental_access_right_manager,fleet_report_fleet_rental_access_right1,model_report_fleet_rental,fleet.fleet_group_manager,1,1,1,1 +fleet_cron_right_user,fleet_vehicle_access_right1,base.model_ir_cron,rental_group_user,1,1,1,0 +fleet_cron_right_user1,fleet_vehicle_access_right11,base.model_ir_cron,fleet.fleet_group_manager,1,1,1,0 +fleet_vehicle_model_access_right_user,fleet_vehicle_model_access_right,fleet.model_fleet_vehicle_model,rental_group_user,1,1,1,0 +fleet_vehicle_model_brand_access_right_user,fleet_vehicle_model_brand_access_right,fleet.model_fleet_vehicle_model_brand,rental_group_user,1,1,1,0 +fleet_vehicle_access_right_user,fleet_vehicle_access_right,fleet.model_fleet_vehicle,rental_group_user,1,1,1,0 +fleet_vehicle_log_fuel_access_right_rental_user,fleet_vehicle_log_fuel_access_right_rental_user,fleet.model_fleet_vehicle_log_fuel,rental_group_user,1,1,1,1 +fleet_vehicle_odometer_access_right_rental_user,fleet_vehicle_odometer_access_right_rental_user,fleet.model_fleet_vehicle_odometer,rental_group_user,1,1,1,1 +fleet_vehicle_log_services_access_right_rental_user,fleet_vehicle_log_services_access_right_rental_user,fleet.model_fleet_vehicle_log_services,fleet.fleet_group_manager,1,1,1,1 +fleet_rental_fleet_reserved_access_right_user,fleet_rental_fleet_reserved_access_right,model_rental_fleet_reserved,rental_group_user,1,1,1,0 +fleet_rental_fleet_reserved_access_right_manager,fleet_rental_fleet_reserved_access_right1,model_rental_fleet_reserved,fleet.fleet_group_manager,1,1,1,1 + + + + + + + + diff --git a/fleet_rental/security/rental_security.xml b/fleet_rental/security/rental_security.xml new file mode 100755 index 000000000..1f665cfd1 --- /dev/null +++ b/fleet_rental/security/rental_security.xml @@ -0,0 +1,20 @@ + + + + + + Rental User + + + + + + Manager + + + + + + + diff --git a/fleet_rental/static/description/banner.png b/fleet_rental/static/description/banner.png new file mode 100644 index 000000000..2dc6c80d4 Binary files /dev/null and b/fleet_rental/static/description/banner.png differ diff --git a/fleet_rental/static/description/check_list_form.png b/fleet_rental/static/description/check_list_form.png new file mode 100755 index 000000000..d7e80dab1 Binary files /dev/null and b/fleet_rental/static/description/check_list_form.png differ diff --git a/fleet_rental/static/description/check_list_tree.png b/fleet_rental/static/description/check_list_tree.png new file mode 100755 index 000000000..3ee04b7f7 Binary files /dev/null and b/fleet_rental/static/description/check_list_tree.png differ diff --git a/fleet_rental/static/description/checklist_contract.png b/fleet_rental/static/description/checklist_contract.png new file mode 100755 index 000000000..b0bbda8f4 Binary files /dev/null and b/fleet_rental/static/description/checklist_contract.png differ diff --git a/fleet_rental/static/description/contract_menu.png b/fleet_rental/static/description/contract_menu.png new file mode 100755 index 000000000..3b5e6a0eb Binary files /dev/null and b/fleet_rental/static/description/contract_menu.png differ diff --git a/fleet_rental/static/description/cybro_logo.png b/fleet_rental/static/description/cybro_logo.png new file mode 100755 index 000000000..bb309114c Binary files /dev/null and b/fleet_rental/static/description/cybro_logo.png differ diff --git a/fleet_rental/static/description/cybrosys-fleet-rental-1.png b/fleet_rental/static/description/cybrosys-fleet-rental-1.png new file mode 100755 index 000000000..17d53d9c1 Binary files /dev/null and b/fleet_rental/static/description/cybrosys-fleet-rental-1.png differ diff --git a/fleet_rental/static/description/cybrosys-fleet-rental-10.png b/fleet_rental/static/description/cybrosys-fleet-rental-10.png new file mode 100755 index 000000000..1e22c03cf Binary files /dev/null and b/fleet_rental/static/description/cybrosys-fleet-rental-10.png differ diff --git a/fleet_rental/static/description/cybrosys-fleet-rental-11.png b/fleet_rental/static/description/cybrosys-fleet-rental-11.png new file mode 100755 index 000000000..88eb6173e Binary files /dev/null and b/fleet_rental/static/description/cybrosys-fleet-rental-11.png differ diff --git a/fleet_rental/static/description/cybrosys-fleet-rental-2.png b/fleet_rental/static/description/cybrosys-fleet-rental-2.png new file mode 100755 index 000000000..5a53dc121 Binary files /dev/null and b/fleet_rental/static/description/cybrosys-fleet-rental-2.png differ diff --git a/fleet_rental/static/description/cybrosys-fleet-rental-3.png b/fleet_rental/static/description/cybrosys-fleet-rental-3.png new file mode 100755 index 000000000..f4fc09c31 Binary files /dev/null and b/fleet_rental/static/description/cybrosys-fleet-rental-3.png differ diff --git a/fleet_rental/static/description/cybrosys-fleet-rental-4.png b/fleet_rental/static/description/cybrosys-fleet-rental-4.png new file mode 100755 index 000000000..ab36eaabe Binary files /dev/null and b/fleet_rental/static/description/cybrosys-fleet-rental-4.png differ diff --git a/fleet_rental/static/description/cybrosys-fleet-rental-5.png b/fleet_rental/static/description/cybrosys-fleet-rental-5.png new file mode 100755 index 000000000..9a316e2a4 Binary files /dev/null and b/fleet_rental/static/description/cybrosys-fleet-rental-5.png differ diff --git a/fleet_rental/static/description/cybrosys-fleet-rental-6.png b/fleet_rental/static/description/cybrosys-fleet-rental-6.png new file mode 100755 index 000000000..bdb293a65 Binary files /dev/null and b/fleet_rental/static/description/cybrosys-fleet-rental-6.png differ diff --git a/fleet_rental/static/description/cybrosys-fleet-rental-7.png b/fleet_rental/static/description/cybrosys-fleet-rental-7.png new file mode 100755 index 000000000..cfe6c6376 Binary files /dev/null and b/fleet_rental/static/description/cybrosys-fleet-rental-7.png differ diff --git a/fleet_rental/static/description/cybrosys-fleet-rental-8.png b/fleet_rental/static/description/cybrosys-fleet-rental-8.png new file mode 100755 index 000000000..0b99cd226 Binary files /dev/null and b/fleet_rental/static/description/cybrosys-fleet-rental-8.png differ diff --git a/fleet_rental/static/description/cybrosys-fleet-rental-9.png b/fleet_rental/static/description/cybrosys-fleet-rental-9.png new file mode 100755 index 000000000..2c10fe29c Binary files /dev/null and b/fleet_rental/static/description/cybrosys-fleet-rental-9.png differ diff --git a/fleet_rental/static/description/email1.png b/fleet_rental/static/description/email1.png new file mode 100755 index 000000000..9fbd5896f Binary files /dev/null and b/fleet_rental/static/description/email1.png differ diff --git a/fleet_rental/static/description/email2.png b/fleet_rental/static/description/email2.png new file mode 100755 index 000000000..6cd54feec Binary files /dev/null and b/fleet_rental/static/description/email2.png differ diff --git a/fleet_rental/static/description/email3.png b/fleet_rental/static/description/email3.png new file mode 100755 index 000000000..5ccaecafd Binary files /dev/null and b/fleet_rental/static/description/email3.png differ diff --git a/fleet_rental/static/description/icon.png b/fleet_rental/static/description/icon.png new file mode 100644 index 000000000..d33e42c0d Binary files /dev/null and b/fleet_rental/static/description/icon.png differ diff --git a/fleet_rental/static/description/index.html b/fleet_rental/static/description/index.html new file mode 100755 index 000000000..213166f68 --- /dev/null +++ b/fleet_rental/static/description/index.html @@ -0,0 +1,229 @@ +
+
+

Fleet/Vehicle Rental Management

+

This module helps with an opportunity to give the vehicles like car,van,bike,jeep etc.. for Rent.

+

Cybrosys Technologies

+
+
+

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.
+ Flexible for further customization.
+
+
+
+ +
+
+
+

Overview

+

+ 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. +

+
+
+
+ +
+
+

Fleet Rental Management

+
+

+

Fleet Rental -> Rental Management

+

+

+
+ +
+ +
+
+ ☛ 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. +
+
+
+
+

+

Fleet Rental -> Rental Management -> Rental Contract

+

+

+
+ +
+
+ ☛ 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". +
+
+
+
+ +
+
+

Checklist

+
+
+ +
+ ☛ Checklist Tab in Rental Contract Form. +
+
+
+
+

+ 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. +

+

+
+
+
+ +
+
+

Checklist Easy Access

+
+
+ +
+ ☛ No need to open all rental contract to see the checklist. +
+
+
+ +
+
+ + 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. +
+
+
+
+ +
+
+

Email Notifications

+
+
+ + ☛The system will send email notification to notify the confirmation of contract.
+ ☛The system will notify the first payment through email.
+ ☛The system will remind all recurrent invoices through email.
+ Note:- You should configure outgoing and incoming e-mail settings from your odoo for email service. +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+ +
+
+

Contract Payment Validations

+
+
+ +
+
+ ☛ + 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. + + +
+
+ +
+
+
+
+ +
+
+

Fleet Rental Analysis Report

+
+
+ +
+ ☛ + You can also analyse all your fleet rentals from Fleet Rental -> Reports -> Fleet Rental Analysis. + +
+
+
+ +
+
+

Access Rights

+
+ ☛Fleet Manager :- Fleet manager has the complete access across the fleet rental management
+ ☛Fleet Rental User :- Fleet rental user can read, write and create the records. +
+
+
+ +
+

Need Any Help?

+ +
+ + + diff --git a/fleet_rental/static/description/menu_items.png b/fleet_rental/static/description/menu_items.png new file mode 100755 index 000000000..14d26e6cc Binary files /dev/null and b/fleet_rental/static/description/menu_items.png differ diff --git a/fleet_rental/static/description/rental_inv.png b/fleet_rental/static/description/rental_inv.png new file mode 100755 index 000000000..ceb8a60d3 Binary files /dev/null and b/fleet_rental/static/description/rental_inv.png differ diff --git a/fleet_rental/static/description/rental_validation.png b/fleet_rental/static/description/rental_validation.png new file mode 100755 index 000000000..dbbe0c4ce Binary files /dev/null and b/fleet_rental/static/description/rental_validation.png differ diff --git a/fleet_rental/static/description/report.png b/fleet_rental/static/description/report.png new file mode 100755 index 000000000..9da5511c9 Binary files /dev/null and b/fleet_rental/static/description/report.png differ diff --git a/fleet_rental/views/car_rental_view.xml b/fleet_rental/views/car_rental_view.xml new file mode 100755 index 000000000..e5940008e --- /dev/null +++ b/fleet_rental/views/car_rental_view.xml @@ -0,0 +1,216 @@ + + + + + Car Rental Sequence + car.rental.sequence + RENT/%(range_year)s/ + + + + 4 + + + + + + Fleet scheduler + + code + model.fleet_scheduler() + + + 1 + days + -1 + + + + + fleet.vehicle.form.inherit.view + fleet.vehicle + + + + + + + + + + + + + + car.contract.result.form + car.rental.contract + form + +
+
+
+ +
+ +
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+
+
+
+
+ + + +
+
+ + +
+ +
+
+ + + car_contract_tree_view.tree + car.rental.contract + tree + + + + + + + + + + + + + + + + + Rental Contract + car.rental.contract + tree,form + + + + + +
+
diff --git a/fleet_rental/views/car_tools_view.xml b/fleet_rental/views/car_tools_view.xml new file mode 100755 index 000000000..30ec50ece --- /dev/null +++ b/fleet_rental/views/car_tools_view.xml @@ -0,0 +1,45 @@ + + + + + car_rental_contract_tools_form_view.form + car.tools + form + +
+ + + + + + + + + + + +
+
+ + + car_rental_contract_tools_tree_view.tree + car.tools + tree + + + + + + + + + + Accessories/Tools + car.tools + tree,form + + + +
+
diff --git a/fleet_rental/views/checklist_view.xml b/fleet_rental/views/checklist_view.xml new file mode 100755 index 000000000..eba69337a --- /dev/null +++ b/fleet_rental/views/checklist_view.xml @@ -0,0 +1,90 @@ + + + + + car_rental_contract_checklist_form_view.form + car.rental.contract + form + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + Checklist + car.rental.contract + tree,form + [('state', 'in', ('running', 'checking'))] + + + + + + form + + + + + + + + + + + + +
+
diff --git a/pos_product_creation/README.rst b/pos_product_creation/README.rst new file mode 100644 index 000000000..4d736aadf --- /dev/null +++ b/pos_product_creation/README.rst @@ -0,0 +1,42 @@ +Pos Product Creation v12 +======================== + +This module adds product creation button an wizard in pos. + + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: V10: Linto CT @ cybrosys, odoo@cybrosys.com + V12: Akshay Babu @ cybrosys, + + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ + diff --git a/pos_product_creation/__init__.py b/pos_product_creation/__init__.py new file mode 100644 index 000000000..6ee47ebeb --- /dev/null +++ b/pos_product_creation/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Linto CT @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import models diff --git a/pos_product_creation/__manifest__.py b/pos_product_creation/__manifest__.py new file mode 100644 index 000000000..51e533a8f --- /dev/null +++ b/pos_product_creation/__manifest__.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Linto CT @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +{ + 'name': 'Create Products From POS', + 'version': '13.0.1.0.0', + 'category': 'Point of Sale', + 'summary': 'Create Products From POS Interface', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'images': ['static/description/banner.png'], + 'website': 'https://www.cybrosys.com', + 'depends': ['point_of_sale'], + 'data': [ + 'views/pos_template.xml', + ], + 'qweb': ['static/src/xml/pos.xml'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, +} diff --git a/pos_product_creation/doc/RELEASE_NOTES.md b/pos_product_creation/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..8c8275fa1 --- /dev/null +++ b/pos_product_creation/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 06.11.2019 +#### Version 13.0.1.0.0 +##### ADD +- Initial Commit for pos_product_creation diff --git a/pos_product_creation/models/__init__.py b/pos_product_creation/models/__init__.py new file mode 100644 index 000000000..c97a06b7a --- /dev/null +++ b/pos_product_creation/models/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Linto CT @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from . import product_pos diff --git a/pos_product_creation/models/product_pos.py b/pos_product_creation/models/product_pos.py new file mode 100644 index 000000000..03f847bad --- /dev/null +++ b/pos_product_creation/models/product_pos.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2019-TODAY Cybrosys Technologies(). +# Author: Linto CT @cybrosys(odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# + +from odoo import models, api + + +class ProductFromPos(models.Model): + _inherit = 'product.product' + + @api.model + def create_product_pos(self, vals): + type = None + if vals.get('type') == 'Stockable': + type = 'product' + elif vals.get('type') == 'Consumable': + type = 'consu' + elif vals.get('type') == 'Service': + type = 'service' + category = self.env['product.category'].search([('name', '=', vals.get('category'))], limit=1) + uom_id = self.env['uom.uom'].search([('name', '=', vals.get('unit'))], limit=1) + new_vals = { + 'name': vals.get('name'), + 'display_name': vals.get('name'), + 'type': type, + 'categ_id': category.id if category else None, + 'list_price': vals.get('price') if vals.get('price') else 1, + 'available_in_pos': True, + 'sale_ok': True, + 'uom_id': uom_id.id, + 'uom_po_id': uom_id.id + } + rec = self.env['product.product'].create(new_vals) + new_vals['id'] = rec.id + new_vals['lst_price'] = vals.get('price') if vals.get('price') else 1 + new_vals['standard_price'] = vals.get('price') if vals.get('price') else 1 + new_vals['pos_categ_id'] = [rec.pos_categ_id.id] if rec.pos_categ_id else None + new_vals['taxes_id'] = [rec.taxes_id.id] if rec.taxes_id else [] + new_vals['barcode'] = rec.barcode + new_vals['default_code'] = rec.default_code + new_vals['to_weight'] = rec.to_weight + new_vals['uom_id'] = [rec.uom_id.id, rec.uom_id.name] + new_vals['description_sale'] = rec.description_sale + new_vals['description'] = rec.description + new_vals['product_tmpl_id'] = [rec.product_tmpl_id.id] + new_vals['tracking'] = rec.tracking + + return new_vals diff --git a/pos_product_creation/static/description/banner.png b/pos_product_creation/static/description/banner.png new file mode 100644 index 000000000..9f62d36ce Binary files /dev/null and b/pos_product_creation/static/description/banner.png differ diff --git a/pos_product_creation/static/description/cybro_logo.png b/pos_product_creation/static/description/cybro_logo.png new file mode 100644 index 000000000..bb309114c Binary files /dev/null and b/pos_product_creation/static/description/cybro_logo.png differ diff --git a/pos_product_creation/static/description/icon.png b/pos_product_creation/static/description/icon.png new file mode 100644 index 000000000..36f8b0eb7 Binary files /dev/null and b/pos_product_creation/static/description/icon.png differ diff --git a/pos_product_creation/static/description/index.html b/pos_product_creation/static/description/index.html new file mode 100644 index 000000000..2bb7879ef --- /dev/null +++ b/pos_product_creation/static/description/index.html @@ -0,0 +1,333 @@ + +
+
+

+ POS Product Creation +

+

+ Create Products From POS +

+
+ Cybrosys Technologies +
+ +
+ cybrosys technologies +
+
+
+
+ +
+
+

+ Overview +

+

+ The module provisions the end user to create products directly from Point of Sale. The new button "Add Product", shall enable the end user to add details such as product name, type, category price and more from POS. Upon clicking the confirm button, a new product shall be created based on provided details. + +

+
+
+ +
+
+

+ Features +

+

+ + Allows you to create products from Point of Sale +

+ +
+
+ +
+
+

+ Screenshots +

+

+ + Enter the details of products. +

+
+ +
+

+ + The products list will be updated real time. It is not needed to reload the page to show the newly created product in Point of Sale products list. +

+
+ +
+ +
+
+ +
+
+ cybrosys technologies +
+
+
+
+

+ Our Services +

+
+ + + +
+ +
+ + + +
+

+ + Odoo Support +

+ +
+ +
+
+
+
+
+

+ Our Industries +

+
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + Trading + +

+

+ Easily procure and sell your products. +

+
+ +
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + Manufacturing +

+

+ Plan, track and schedule your operations. +

+
+ +
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + Restaurant +

+

+ Run your bar or restaurant methodical. +

+
+ +
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + POS +

+

+ Easy configuring and convivial selling. +

+
+ +
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + E-commerce & Website +

+

+ Mobile friendly, awe-inspiring product pages. +

+
+
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + Hotel Management +

+

+ An all-inclusive hotel management application. +

+
+
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + Education +

+

+ A Collaborative platform for educational management. +

+
+
+
+ +
+
+ + Odoo Industry + +
+
+
+

+ + Service Management +

+

+ Keep track of services and invoice accordingly. +

+
+
+
+
+
+
+ +
diff --git a/pos_product_creation/static/description/pos-product-cybrosys-1.png b/pos_product_creation/static/description/pos-product-cybrosys-1.png new file mode 100644 index 000000000..d2e4ec175 Binary files /dev/null and b/pos_product_creation/static/description/pos-product-cybrosys-1.png differ diff --git a/pos_product_creation/static/description/pos-product-cybrosys-2.png b/pos_product_creation/static/description/pos-product-cybrosys-2.png new file mode 100644 index 000000000..b7adbee61 Binary files /dev/null and b/pos_product_creation/static/description/pos-product-cybrosys-2.png differ diff --git a/pos_product_creation/static/description/product.png b/pos_product_creation/static/description/product.png new file mode 100644 index 000000000..065db29fc Binary files /dev/null and b/pos_product_creation/static/description/product.png differ diff --git a/pos_product_creation/static/description/wizard.png b/pos_product_creation/static/description/wizard.png new file mode 100644 index 000000000..108e39604 Binary files /dev/null and b/pos_product_creation/static/description/wizard.png differ diff --git a/pos_product_creation/static/src/js/create_product.js b/pos_product_creation/static/src/js/create_product.js new file mode 100644 index 000000000..63254e380 --- /dev/null +++ b/pos_product_creation/static/src/js/create_product.js @@ -0,0 +1,100 @@ +odoo.define('pos_product_creation',function(require) { + +var gui = require('point_of_sale.gui'); +var chrome = require('point_of_sale.chrome'); +var PopupWidget = require('point_of_sale.popups'); +var popups = require('point_of_sale.popups'); +var core = require('web.core'); +var models = require('point_of_sale.models'); +var rpc = require('web.rpc'); +var QWeb = core.qweb; +var _t = core._t; +models.load_models({ + model: 'product.category', + fields: ['name'], + loaded: function(self,categories){ + self.categories = categories; + }, + }); + +chrome.OrderSelectorWidget.include({ + renderElement: function(){ + var self = this; + this._super(); + var categ = []; + var unit = []; + for (var i in self.pos.categories){ + categ.push(self.pos.categories[i].name); + } + for (var i in self.pos.units){ + unit.push(self.pos.units[i].name); + } + this.$('.add-product').click(function(event){ + self.gui.show_popup('product_create',{ + 'category': categ, + 'units':unit, + }); + }); + }, +}); +var ProductCreationWidget = PopupWidget.extend({ + template: 'ProductCreationWidget', + init: function(parent, args) { + this._super(parent, args); + this.options = {}; + this.category = []; + this.units = []; + }, + events: { + 'click .button.cancel': 'click_cancel', + 'click .button.confirm': 'click_confirm', + }, + show: function(options){ + options = options || {}; + this._super(options); + this.category = options.category; + this.units = options.units; + this.renderElement(); + this.$('.name').focus(); + }, + click_confirm: function(){ + var self = this; + var name = this.$('.name').val(); + var type = this.$('.type').val(); + var category = this.$('.category').val(); + var unit = this.$('.uom').val(); + var price = this.$('.price').val(); + if(!name || !price) { + alert("Please fill Name & price for the Product!") + } + else { + var product_vals = { + 'name': name, + 'type': type, + 'category': category, + 'price': price, + 'unit': unit + }; + rpc.query({ + model: 'product.product', + method: 'create_product_pos', + args: [product_vals], + }).then(function (products){ + self.pos.db.add_products(_.map([products], function (product) { + product.categ = _.findWhere(self.pos.product_categories, {'id': product.categ_id[0]}); + return new models.Product({}, product); + })); + }); + this.gui.close_popup(); + } + }, + click_cancel: function(){ + this.gui.close_popup(); + if (this.options.cancel) { + this.options.cancel.call(this); + } + }, +}); +gui.define_popup({name:'product_create', widget: ProductCreationWidget}); + +}); \ No newline at end of file diff --git a/pos_product_creation/static/src/xml/pos.xml b/pos_product_creation/static/src/xml/pos.xml new file mode 100644 index 000000000..cb482ad49 --- /dev/null +++ b/pos_product_creation/static/src/xml/pos.xml @@ -0,0 +1,54 @@ + + + + +
+ + Add Product + +
+
+
+ + + + +
\ No newline at end of file diff --git a/pos_product_creation/views/pos_template.xml b/pos_product_creation/views/pos_template.xml new file mode 100644 index 000000000..9932b9edf --- /dev/null +++ b/pos_product_creation/views/pos_template.xml @@ -0,0 +1,11 @@ + + + + + + +