diff --git a/home_delivery_system/README.rst b/home_delivery_system/README.rst new file mode 100644 index 000000000..86b23ce3c --- /dev/null +++ b/home_delivery_system/README.rst @@ -0,0 +1,48 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Home Delivery system +==================== +Home delivery system is to deliver the orders through a delivery person and then +the delivery person can make the payment at the time of delivery. + +Configuration +============= +* No additional configurations needed + +License +------- +Affero General Public License, Version 3 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: (V15) Ammu Raj, Contacts: odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if +your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/home_delivery_system/__init__.py b/home_delivery_system/__init__.py new file mode 100644 index 000000000..927ebd786 --- /dev/null +++ b/home_delivery_system/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Ammu Raj (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 controllers +from . import models +from . import wizards diff --git a/home_delivery_system/__manifest__.py b/home_delivery_system/__manifest__.py new file mode 100644 index 000000000..4d126b066 --- /dev/null +++ b/home_delivery_system/__manifest__.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Ammu Raj (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': 'Home Delivery System', + 'version': '15.0.1.0.0', + 'category': 'Website,Sales', + 'summary': "Home delivery system is to deliver the orders through a delivery" + "person and then the delivery person can make the payment at the" + "time of delivery.", + 'description': "Home delivery system is used to deliver the orders through" + "a delivery person", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['sale_management', 'stock', 'website', 'hr', 'website_sale'], + 'data': [ + 'security/home_delivery_system_security.xml', + 'security/ir.model.access.csv', + 'data/website_data.xml', + 'data/mail_template_data.xml', + 'views/stock_picking_views.xml', + 'views/website_open_jobs_templates.xml', + 'views/broadcasted_order_templates.xml', + 'views/completed_order_templates.xml', + 'views/delivery_option_templates.xml', + 'views/delivery_templates.xml', + 'views/home_delivery_system_menus.xml', + 'wizards/delivery_person_reschedule_views.xml', + ], + 'assets': { + 'web.assets_frontend': [ + 'home_delivery_system/static/src/js/delivery_available.js', + ], + }, + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': True, +} diff --git a/home_delivery_system/controllers/__init__.py b/home_delivery_system/controllers/__init__.py new file mode 100644 index 000000000..9c296c091 --- /dev/null +++ b/home_delivery_system/controllers/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Ammu Raj (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 home_delivery_system +from . import website_sale diff --git a/home_delivery_system/controllers/home_delivery_system.py b/home_delivery_system/controllers/home_delivery_system.py new file mode 100644 index 000000000..e7a556961 --- /dev/null +++ b/home_delivery_system/controllers/home_delivery_system.py @@ -0,0 +1,186 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Ammu Raj (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 http +from odoo.http import request + + +class WebsitePage(http.Controller): + """Redirecting to the corresponding pages""" + + @http.route('/my_jobs', type='http', auth='public', website=True) + def my_jobs(self, **kw): + """Delivery persons jobs""" + if kw.get('order_id'): + order = request.env['stock.picking'].sudo().search( + [('sale_id', '=', int(kw.get('order_id')))]) + order.write({ + 'is_complete': True + }) + assigned_delivery_orders = request.env[ + 'stock.picking'].sudo().search( + [('delivery_boy_id', '!=', False), + ('delivery_boy_id.user_id', '=', request.env.user.id), + ('is_complete', '=', False), + ('delivery_state', '!=', 'accept')]) + else: + assigned_delivery_orders = request.env[ + 'stock.picking'].sudo().search( + [('delivery_boy_id', '!=', False), + ('delivery_boy_id.user_id', '=', request.env.user.id), + ('is_complete', '=', False)]) + values = [] + deliver_boy_jobs = {} + if not len(assigned_delivery_orders) == 0: + for rec in assigned_delivery_orders: + values.append({ + 'id': rec.id, + 'order': rec.origin, + 'customer': rec.partner_id.name, + 'address': rec.partner_id.street, + 'distance': rec.distance, + 'price': request.env['sale.order'].sudo().search( + [('name', '=', rec.origin)]).amount_total, + }) + deliver_boy_jobs['delivery'] = values + return request.render('home_delivery_system.website_my_jobs', + deliver_boy_jobs) + else: + return request.render('home_delivery_system.website_my_jobs', + deliver_boy_jobs) + + @http.route('/broadcasted_order', type='http', auth='public', website=True) + def broadcasted_order(self): + """To view broadcast orders in the website""" + broadcast_order = request.env['stock.picking'].sudo().search( + [('is_broadcast_order', '=', True)]) + values = [] + broadcasts_order = {} + if not len(broadcast_order) == 0: + for rec in broadcast_order: + values.append({ + 'id': rec.id, + 'order': rec.origin, + 'customer': rec.partner_id.name, + 'address': rec.partner_id.street, + 'distance': rec.distance, + 'price': request.env['sale.order'].sudo().search( + [('name', '=', rec.origin)]).amount_total, + }) + broadcasts_order['broadcast'] = values + return http.request.render( + 'home_delivery_system.website_broadcast_order', broadcasts_order) + + @http.route('/completed_order', type='http', auth='public', website=True) + def completed_order(self): + """Delivery persons completed orders""" + completed_order = request.env['stock.picking'].sudo().search( + [('is_complete', '!=', False)]) + values = [] + completed_orders = {} + if not len(completed_order) == 0: + for rec in completed_order: + values.append({ + 'id': rec.id, + 'order': rec.origin, + 'customer': rec.partner_id.name, + 'address': rec.partner_id.street, + 'distance': rec.distance, + 'price': request.env['sale.order'].sudo().search( + [('name', '=', rec.origin)]).amount_total, + 'status': 'Paid' + }) + completed_orders['completed'] = values + return http.request.render( + 'home_delivery_system.website_completed_order', completed_orders) + + @http.route('/delivery/option/', methods=['POST', 'GET'], + type='http', auth='public', website=True) + def delivery(self, orderid): + """The delivery person deliver the orders""" + delivery_order = request.env['stock.picking'].sudo().search( + [('id', '=', orderid)]) + values = [] + product = [] + delivery_order_details = {} + values.append({ + 'id': delivery_order.sale_id.id, + 'order': delivery_order.sale_id.name, + 'customer': delivery_order.sale_id.partner_id.name, + 'address': delivery_order.sale_id.partner_id.street, + 'street': delivery_order.sale_id.partner_id.street2 or '', + 'city': delivery_order.sale_id.partner_id.city or '', + 'zip': delivery_order.sale_id.partner_id.zip or '', + 'country': delivery_order.sale_id.partner_id.country_id.name or '', + 'phone': delivery_order.sale_id.partner_id.phone, + 'price': delivery_order.sale_id.amount_total, + 'payment': delivery_order.payment_status, + 'state': delivery_order.delivery_state, + }) + for rec in delivery_order.sale_id.order_line: + product.append({ + 'product': rec.product_id.name, + 'qty': rec.product_uom_qty, + 'total': delivery_order.sale_id.amount_total + }) + delivery_order_details['delivery_order'] = values + delivery_order_details['product'] = product + return http.request.render( + 'home_delivery_system.website_delivery_option', + delivery_order_details) + + @http.route('/delivery/issue', methods=['POST', 'GET'], type='http', + auth='public', website=True) + def issue(self, **post): + """It returns the delivery person can post an issue,while any + issue arrived at the time of delivery""" + order = request.env['sale.order'].browse(int(post.get('id'))) + order.write({ + 'note': post.get('message') + }) + values = [] + product = [] + delivery_order_details = {} + values.append({ + 'id': order.id, + 'order': order.name, + 'customer': order.partner_id.name, + 'address': order.partner_id.street, + 'street': order.partner_id.street2 or '', + 'city': order.partner_id.city or '', + 'zip': order.partner_id.zip or '', + 'country': order.partner_id.country_id.name or '', + 'phone': order.partner_id.phone, + 'price': order.amount_total, + 'payment': request.env['stock.picking'].sudo().search( + [('sale_id', '=', order.id)]).payment_status, + }) + for rec in order.order_line: + product.append({ + 'product': rec.product_id.name, + 'qty': rec.product_uom_qty, + 'total': order.amount_total + }) + delivery_order_details['delivery_order'] = values + delivery_order_details['product'] = product + return http.request.render( + 'home_delivery_system.website_delivery_option', + delivery_order_details) diff --git a/home_delivery_system/controllers/website_sale.py b/home_delivery_system/controllers/website_sale.py new file mode 100644 index 000000000..5d57cf9d5 --- /dev/null +++ b/home_delivery_system/controllers/website_sale.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Ammu Raj (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 . +# +############################################################################### +import base64 +from odoo import http +from odoo.http import request +from odoo.addons.website_sale.controllers.main import WebsiteSale + + +class PaymentProcess(WebsiteSale): + """This is used to process the payment """ + + @http.route('/shop/payment', type='http', auth='user', website=True, + sitemap=False) + def shop_payment(self, **post): + """ Payment step. This page proposes several payment means based on available + payment.provider""" + if post.get('order_id'): + order = request.env['sale.order'].sudo().browse( + int(post.get('order_id'))) + order.write({ + 'website_id': request.website.id + }) + request.session['sale_order_id'] = post.get('order_id') + stock_picking = request.env['stock.picking'].sudo().search( + [('sale_id', '=', int(post.get( + 'order_id')))]) + if order and stock_picking.is_complete: + order._force_lines_to_invoice_policy_order() + invoices = order._create_invoices() + report = request.env.ref( + 'account.account_invoices').with_context( + force_report_rendering=True)._render_qweb_pdf( + invoices.id) + data_record = base64.b64encode(report[0]) + ir_values = { + 'name': 'Invoice Report', + 'type': 'binary', + 'datas': data_record, + 'store_fname': data_record, + 'mimetype': 'application/pdf', + 'res_model': 'account.move', + } + report_attachment = request.env['ir.attachment'].sudo().create( + ir_values) + email_template = request.env.ref( + 'home_delivery_system.email_template_invoiced') + if email_template: + email_template.attachment_ids = [(4, report_attachment.id)] + email_template.sudo().send_mail(stock_picking.id, + force_send=True) + email_template.attachment_ids = [(5, 0, 0)] + else: + order = request.website.sale_get_order() + redirection = self.checkout_redirection( + order) or self.checkout_check_address(order) + if redirection: + return redirection + render_values = self._get_shop_payment_values(order, **post) + render_values['only_services'] = order and order.only_services or False + if render_values['errors']: + render_values.pop('providers', '') + render_values.pop('tokens', '') + request.session['sale_last_order_id'] = order.id + return request.render("website_sale.payment", render_values) diff --git a/home_delivery_system/data/mail_template_data.xml b/home_delivery_system/data/mail_template_data.xml new file mode 100644 index 000000000..42bee4ec2 --- /dev/null +++ b/home_delivery_system/data/mail_template_data.xml @@ -0,0 +1,168 @@ + + + + + + Delivery Order: Cancel + + {{ (object.company_id.email) }} + {{ object.partner_id.id }} + {{ object.partner_id.name }} Order (Ref {{ object.name or 'n/a' }}) + +
+

+ Dear + + + + + , + +
+
+ Here is your + + order + + + + Order + + + (with reference:) + + from + YourCompany. + this order is cancelled. +
+
+ Do not hesitate to contact us if you have any questions. + Address + -- + +
+ Phone + -- + +
+ Email + -- + +
+

+
+
+
+ + + Picking Order: Sending + + {{ (object.company_id.email) }} + {{ object.partner_id.id }} + {{ object.partner_id.name }} Invoice (Ref {{ object.name or 'n/a' }}) + +
+

+ Dear + + + + + , + +
+
+ Here is your + + order + + + + Order + + + (with reference:) + + from + YourCompany. + this order is picked. +
+
+ + Do not hesitate to contact us if you have any questions. + Address + + +
+ Phone + + +
+ Email + + +
+

+
+
+
+ + + Invoice For Order: Sending + + {{ (object.company_id.email) }} + {{ object.partner_id.id }} + {{ object.partner_id.name }} Invoice (Ref {{ object.name or 'n/a' }}) + +
+

+ Dear + + + + + , + +
+
+ Here is your + + order + + + + Order + + + (with reference:) + + from + YourCompany. + this order is delivered. +
+
+ Do not hesitate to contact us if you have any questions. + Address + -- + +
+ Phone + -- + +
+ Email + -- + +

+
+
+
+
+
diff --git a/home_delivery_system/data/website_data.xml b/home_delivery_system/data/website_data.xml new file mode 100644 index 000000000..e009692a0 --- /dev/null +++ b/home_delivery_system/data/website_data.xml @@ -0,0 +1,24 @@ + + + + + + MyJobs + /my_jobs + + 50 + + + BroadcastOrder + /broadcasted_order + + 51 + + + CompletedOrder + /completed_order + + 52 + + + diff --git a/home_delivery_system/doc/RELEASE_NOTES.md b/home_delivery_system/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..85ecbb803 --- /dev/null +++ b/home_delivery_system/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 10.06.2024 +#### Version 15.0.1.0.0 +##### ADD + +- Initial Commit for Home Delivery system diff --git a/home_delivery_system/models/__init__.py b/home_delivery_system/models/__init__.py new file mode 100644 index 000000000..b605c9b81 --- /dev/null +++ b/home_delivery_system/models/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Ammu Raj (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 stock_picking diff --git a/home_delivery_system/models/stock_picking.py b/home_delivery_system/models/stock_picking.py new file mode 100644 index 000000000..a647c23d7 --- /dev/null +++ b/home_delivery_system/models/stock_picking.py @@ -0,0 +1,122 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Ammu Raj (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 fields, models, _ +from odoo import exceptions + + +class StockPicking(models.Model): + """inheriting stock.picking to add additional fields""" + _inherit = 'stock.picking' + + delivery_boy_id = fields.Many2one('hr.employee', string='Delivery Boy', + help="The Person who deliver the goods") + is_cancel_visibility = fields.Boolean(string='Cancel Button Visibility', + default=False, + help="Cancel button visibility field") + is_assign_visibility = fields.Boolean(string='Assign Button Visibility', + default=False, + help="Assign button visibility field") + is_broadcast_order = fields.Boolean(string='Broadcast Order', + help="Checking is it broadcast order or" + "not") + order_source = fields.Char(string='Source', default='sales', + help="The order source") + delivery_assign_date = fields.Date(string='Assign Date', + help="Delivery assigned date") + delivery_state = fields.Selection( + [('draft', 'Draft'), ('assigned', 'Assigned'), + ('accept', 'Accept The Delivery'), + ('picked', 'Picked'), ('reject', 'Reject The Delivery'), + ('cancel', 'Canceled')], help="Different states of delivery", + string='State', readonly=True, default='draft') + payment_status = fields.Selection([('paid', 'Paid'), ('unpaid', 'Unpaid'), + ], string='Payment Status', + default='unpaid', + help="The status of payment") + distance = fields.Float(string='Distance', help="The distance for deliver" + "the goods") + reschedule_reason = fields.Text(string='Reschedule Reason', + help="The reason behind reschedule.") + is_complete = fields.Boolean(default=False, string='Is Complete', + help="For updating Delivery complete status") + + def reset_to_draft(self): + """Reset to draft""" + self.delivery_state = 'draft' + self.delivery_boy_id = False + self.is_broadcast_order = False + self.order_source = False + self.delivery_assign_date = False + self.distance = False + self.payment_status = False + self.is_complete = False + + def assign_delivery(self): + """Assign delivery to the delivery person from order""" + self.is_assign_visibility = True + if len(self.delivery_boy_id): + self.delivery_state = 'assigned' + else: + raise exceptions.ValidationError(_( + "Please select a Delivery Person." + )) + + def reschedule_delivery_person(self): + """Reassigning the delivery person""" + return { + 'res_model': 'delivery.person.reschedule', + 'type': 'ir.actions.act_window', + 'view_mode': 'form', + 'target': 'new', + 'context': {'default_model_id': self.id} + } + + def cancel_delivery(self): + """Home delivery is cancelled and informing the customer by a mail""" + self.delivery_state = 'cancel' + self.is_cancel_visibility = True + self.env.ref( + 'home_delivery_system.email_template_cancel_delivery_order').send_mail( + self.id, force_send=True) + + def picking_delivery(self): + """Changes the state while delivery is picked the person""" + self.delivery_state = 'picked' + self.env.ref( + 'home_delivery_system.email_template_cancel_delivery_picking').send_mail( + self.id, force_send=True) + + def delivery_available(self): + """Writing the state of delivery orders while the delivery accept""" + assigned_delivery_orders = self.env['stock.picking'].search( + [('delivery_boy_id', '!=', False), + ('delivery_boy_id.user_id', '=', self.env.user.id)]) + if len(assigned_delivery_orders) > 1: + for rec in assigned_delivery_orders: + rec.write({ + 'delivery_state': 'accept' + }) + else: + assigned_delivery_orders.write({ + 'delivery_state': 'accept' + }) + return True diff --git a/home_delivery_system/security/home_delivery_system_security.xml b/home_delivery_system/security/home_delivery_system_security.xml new file mode 100644 index 000000000..e3d329ea0 --- /dev/null +++ b/home_delivery_system/security/home_delivery_system_security.xml @@ -0,0 +1,18 @@ + + + + + + Delivery User Group + User Can Manage Delivery Information + + + + Delivery User + + + + diff --git a/home_delivery_system/security/ir.model.access.csv b/home_delivery_system/security/ir.model.access.csv new file mode 100644 index 000000000..10026a1b5 --- /dev/null +++ b/home_delivery_system/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_delivery_person_reschedule,delivery.person.reschedule,model_delivery_person_reschedule,base.group_user,1,1,1,1 diff --git a/home_delivery_system/static/description/assets/icons/check.png b/home_delivery_system/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/check.png differ diff --git a/home_delivery_system/static/description/assets/icons/chevron.png b/home_delivery_system/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/chevron.png differ diff --git a/home_delivery_system/static/description/assets/icons/cogs.png b/home_delivery_system/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/cogs.png differ diff --git a/home_delivery_system/static/description/assets/icons/consultation.png b/home_delivery_system/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/consultation.png differ diff --git a/home_delivery_system/static/description/assets/icons/ecom-black.png b/home_delivery_system/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/ecom-black.png differ diff --git a/home_delivery_system/static/description/assets/icons/education-black.png b/home_delivery_system/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/education-black.png differ diff --git a/home_delivery_system/static/description/assets/icons/hotel-black.png b/home_delivery_system/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/hotel-black.png differ diff --git a/home_delivery_system/static/description/assets/icons/license.png b/home_delivery_system/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/license.png differ diff --git a/home_delivery_system/static/description/assets/icons/lifebuoy.png b/home_delivery_system/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/lifebuoy.png differ diff --git a/home_delivery_system/static/description/assets/icons/manufacturing-black.png b/home_delivery_system/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/manufacturing-black.png differ diff --git a/home_delivery_system/static/description/assets/icons/pos-black.png b/home_delivery_system/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/pos-black.png differ diff --git a/home_delivery_system/static/description/assets/icons/puzzle.png b/home_delivery_system/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/puzzle.png differ diff --git a/home_delivery_system/static/description/assets/icons/restaurant-black.png b/home_delivery_system/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/restaurant-black.png differ diff --git a/home_delivery_system/static/description/assets/icons/service-black.png b/home_delivery_system/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/service-black.png differ diff --git a/home_delivery_system/static/description/assets/icons/trading-black.png b/home_delivery_system/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/trading-black.png differ diff --git a/home_delivery_system/static/description/assets/icons/training.png b/home_delivery_system/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/training.png differ diff --git a/home_delivery_system/static/description/assets/icons/update.png b/home_delivery_system/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/update.png differ diff --git a/home_delivery_system/static/description/assets/icons/user.png b/home_delivery_system/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/user.png differ diff --git a/home_delivery_system/static/description/assets/icons/wrench.png b/home_delivery_system/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/home_delivery_system/static/description/assets/icons/wrench.png differ diff --git a/home_delivery_system/static/description/assets/misc/categories.png b/home_delivery_system/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/categories.png differ diff --git a/home_delivery_system/static/description/assets/misc/check-box.png b/home_delivery_system/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/check-box.png differ diff --git a/home_delivery_system/static/description/assets/misc/compass.png b/home_delivery_system/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/compass.png differ diff --git a/home_delivery_system/static/description/assets/misc/corporate.png b/home_delivery_system/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/corporate.png differ diff --git a/home_delivery_system/static/description/assets/misc/customer-support.png b/home_delivery_system/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/customer-support.png differ diff --git a/home_delivery_system/static/description/assets/misc/cybrosys-logo.png b/home_delivery_system/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/cybrosys-logo.png differ diff --git a/home_delivery_system/static/description/assets/misc/features.png b/home_delivery_system/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/features.png differ diff --git a/home_delivery_system/static/description/assets/misc/logo.png b/home_delivery_system/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/logo.png differ diff --git a/home_delivery_system/static/description/assets/misc/pictures.png b/home_delivery_system/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/pictures.png differ diff --git a/home_delivery_system/static/description/assets/misc/pie-chart.png b/home_delivery_system/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/pie-chart.png differ diff --git a/home_delivery_system/static/description/assets/misc/right-arrow.png b/home_delivery_system/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/right-arrow.png differ diff --git a/home_delivery_system/static/description/assets/misc/star.png b/home_delivery_system/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/star.png differ diff --git a/home_delivery_system/static/description/assets/misc/support.png b/home_delivery_system/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/support.png differ diff --git a/home_delivery_system/static/description/assets/misc/whatsapp.png b/home_delivery_system/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/home_delivery_system/static/description/assets/misc/whatsapp.png differ diff --git a/home_delivery_system/static/description/assets/modules/1.png b/home_delivery_system/static/description/assets/modules/1.png new file mode 100644 index 000000000..026984799 Binary files /dev/null and b/home_delivery_system/static/description/assets/modules/1.png differ diff --git a/home_delivery_system/static/description/assets/modules/2.png b/home_delivery_system/static/description/assets/modules/2.png new file mode 100644 index 000000000..d98f9cfca Binary files /dev/null and b/home_delivery_system/static/description/assets/modules/2.png differ diff --git a/home_delivery_system/static/description/assets/modules/3.png b/home_delivery_system/static/description/assets/modules/3.png new file mode 100644 index 000000000..29b4f5bb6 Binary files /dev/null and b/home_delivery_system/static/description/assets/modules/3.png differ diff --git a/home_delivery_system/static/description/assets/modules/4.png b/home_delivery_system/static/description/assets/modules/4.png new file mode 100644 index 000000000..0c23c1795 Binary files /dev/null and b/home_delivery_system/static/description/assets/modules/4.png differ diff --git a/home_delivery_system/static/description/assets/modules/5.png b/home_delivery_system/static/description/assets/modules/5.png new file mode 100644 index 000000000..2ad34032c Binary files /dev/null and b/home_delivery_system/static/description/assets/modules/5.png differ diff --git a/home_delivery_system/static/description/assets/modules/6.png b/home_delivery_system/static/description/assets/modules/6.png new file mode 100644 index 000000000..411579871 Binary files /dev/null and b/home_delivery_system/static/description/assets/modules/6.png differ diff --git a/home_delivery_system/static/description/assets/screenshots/1.png b/home_delivery_system/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..6c9476fa9 Binary files /dev/null and b/home_delivery_system/static/description/assets/screenshots/1.png differ diff --git a/home_delivery_system/static/description/assets/screenshots/2.png b/home_delivery_system/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..75526ad21 Binary files /dev/null and b/home_delivery_system/static/description/assets/screenshots/2.png differ diff --git a/home_delivery_system/static/description/assets/screenshots/3.png b/home_delivery_system/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..3c214cde5 Binary files /dev/null and b/home_delivery_system/static/description/assets/screenshots/3.png differ diff --git a/home_delivery_system/static/description/assets/screenshots/4.png b/home_delivery_system/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..9ef900137 Binary files /dev/null and b/home_delivery_system/static/description/assets/screenshots/4.png differ diff --git a/home_delivery_system/static/description/assets/screenshots/5.png b/home_delivery_system/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..f985fbfa2 Binary files /dev/null and b/home_delivery_system/static/description/assets/screenshots/5.png differ diff --git a/home_delivery_system/static/description/assets/screenshots/6.png b/home_delivery_system/static/description/assets/screenshots/6.png new file mode 100644 index 000000000..775f5827a Binary files /dev/null and b/home_delivery_system/static/description/assets/screenshots/6.png differ diff --git a/home_delivery_system/static/description/assets/screenshots/7.png b/home_delivery_system/static/description/assets/screenshots/7.png new file mode 100644 index 000000000..284e7e42a Binary files /dev/null and b/home_delivery_system/static/description/assets/screenshots/7.png differ diff --git a/home_delivery_system/static/description/assets/screenshots/8.png b/home_delivery_system/static/description/assets/screenshots/8.png new file mode 100644 index 000000000..f83fd39f1 Binary files /dev/null and b/home_delivery_system/static/description/assets/screenshots/8.png differ diff --git a/home_delivery_system/static/description/assets/screenshots/9.png b/home_delivery_system/static/description/assets/screenshots/9.png new file mode 100644 index 000000000..da79b1f92 Binary files /dev/null and b/home_delivery_system/static/description/assets/screenshots/9.png differ diff --git a/home_delivery_system/static/description/assets/screenshots/hero.gif b/home_delivery_system/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..450b73db3 Binary files /dev/null and b/home_delivery_system/static/description/assets/screenshots/hero.gif differ diff --git a/home_delivery_system/static/description/assets/screenshots/img.png b/home_delivery_system/static/description/assets/screenshots/img.png new file mode 100644 index 000000000..edbe419f1 Binary files /dev/null and b/home_delivery_system/static/description/assets/screenshots/img.png differ diff --git a/home_delivery_system/static/description/banner.png b/home_delivery_system/static/description/banner.png new file mode 100644 index 000000000..009366d42 Binary files /dev/null and b/home_delivery_system/static/description/banner.png differ diff --git a/home_delivery_system/static/description/icon.png b/home_delivery_system/static/description/icon.png new file mode 100644 index 000000000..813c1aa6c Binary files /dev/null and b/home_delivery_system/static/description/icon.png differ diff --git a/home_delivery_system/static/description/images/arrows-transparent.png b/home_delivery_system/static/description/images/arrows-transparent.png new file mode 100644 index 000000000..f2973bb02 Binary files /dev/null and b/home_delivery_system/static/description/images/arrows-transparent.png differ diff --git a/home_delivery_system/static/description/images/cybro_logo.png b/home_delivery_system/static/description/images/cybro_logo.png new file mode 100644 index 000000000..bb309114c Binary files /dev/null and b/home_delivery_system/static/description/images/cybro_logo.png differ diff --git a/home_delivery_system/static/description/images/icons/ecom.png b/home_delivery_system/static/description/images/icons/ecom.png new file mode 100644 index 000000000..6e720d50e Binary files /dev/null and b/home_delivery_system/static/description/images/icons/ecom.png differ diff --git a/home_delivery_system/static/description/images/icons/education.png b/home_delivery_system/static/description/images/icons/education.png new file mode 100644 index 000000000..f0de98eb0 Binary files /dev/null and b/home_delivery_system/static/description/images/icons/education.png differ diff --git a/home_delivery_system/static/description/images/icons/hotel.png b/home_delivery_system/static/description/images/icons/hotel.png new file mode 100644 index 000000000..917c6a63e Binary files /dev/null and b/home_delivery_system/static/description/images/icons/hotel.png differ diff --git a/home_delivery_system/static/description/images/icons/manufacturing.png b/home_delivery_system/static/description/images/icons/manufacturing.png new file mode 100644 index 000000000..68c3722f8 Binary files /dev/null and b/home_delivery_system/static/description/images/icons/manufacturing.png differ diff --git a/home_delivery_system/static/description/images/icons/pos.png b/home_delivery_system/static/description/images/icons/pos.png new file mode 100644 index 000000000..600bfe4f9 Binary files /dev/null and b/home_delivery_system/static/description/images/icons/pos.png differ diff --git a/home_delivery_system/static/description/images/icons/restaurant.png b/home_delivery_system/static/description/images/icons/restaurant.png new file mode 100644 index 000000000..680acf29e Binary files /dev/null and b/home_delivery_system/static/description/images/icons/restaurant.png differ diff --git a/home_delivery_system/static/description/images/icons/service.png b/home_delivery_system/static/description/images/icons/service.png new file mode 100644 index 000000000..bfbe7a6d2 Binary files /dev/null and b/home_delivery_system/static/description/images/icons/service.png differ diff --git a/home_delivery_system/static/description/images/icons/trading.png b/home_delivery_system/static/description/images/icons/trading.png new file mode 100644 index 000000000..a741219b5 Binary files /dev/null and b/home_delivery_system/static/description/images/icons/trading.png differ diff --git a/home_delivery_system/static/description/index.html b/home_delivery_system/static/description/index.html new file mode 100644 index 000000000..a7e7ccfb1 --- /dev/null +++ b/home_delivery_system/static/description/index.html @@ -0,0 +1,691 @@ +
+ +
+ +
+
+ Community +
+ +
+ Enterprise +
+
+ Odoo.sh +
+
+
+ + + +

+ Home Delivery System

+

+ The Home Delivery System which is used to deliver the Orders through a + Delivery Person.

+ + + +
+ + +
+
+ +
+

+ Explore This + Module

+
+ + + + +
+
+ +
+

+ Overview +

+
+
+
+ Home Delivery System is used to Deliver the Order .The Orders can assign + to a Delivery Person ,The Person can get + the orders through Website , the Delivery Person Deliver the order and + also the Person can process the payment at the time of delivery. +
+
+ + + +
+
+ +
+

+ Features +

+
+
+
+
+ + Assign Orders to Delivery Persons. +
+
+ + The Person can see the orders through website. +
+
+ + Delivery Person can Deliver the Orders and also do the Payment. +
+
+ + The broadcast orders and completed orders are shown in the Website. +
+
+ + Emails are send to Customers in different Levels of Delivery. +
+
+ +
+ + + +
+
+ +
+

+ Screenshots +

+
+
+
+ +
+

+ The Orders in the Home Delivery System +

+

+ +
+ +
+

+ Assign Delivery Persons +

+

+ +
+
+

+ Add delivery User in User Settings. +

+

+ +
+
+

+ The Person can see their Assigned Jobs through Website and need to click Available. +

+

+ +
+ +
+

+ After Accepting the delivery need to Pick the Products. +

+

+ +
+ +
+

+ Clicking on the required delivery leads to its form view with many options. +

+

+ +
+
+

+ Clicking on the Pay Now Button allows to Payment through Website. +

+

+

+ +
+
+

+ After Payment Click on the 'Deliver Products' from here. +

+

+

+ +
+
+

+

+ +
+
+

+ The completed job will be reduced from the delivery person's job. +

+

+

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

+ Related + Products +

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

+ Our Services +

+
+ +
+
+
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ + +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+ +
+ + + + + +
+
+ +
+

+ Our + Industries +

+
+ +
+
+
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+ +
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+ +
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+ +
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+ +
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+ +
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+ +
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+ +
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

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

+ Support +

+
+
+
+
+
+
+ +
+
+

Need Help?

+

Got questions or need help? + Get in touch.

+ +

+ odoo@cybrosys.com

+
+
+
+
+
+
+
+ +
+
+

WhatsApp

+

Say hi to us on WhatsApp!

+ +

+ +91 86068 + 27707

+
+
+
+
+
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/home_delivery_system/static/src/js/delivery_available.js b/home_delivery_system/static/src/js/delivery_available.js new file mode 100644 index 000000000..3dbf5094e --- /dev/null +++ b/home_delivery_system/static/src/js/delivery_available.js @@ -0,0 +1,20 @@ +odoo.define('home_delivery_system.available', function(require) { + 'use strict'; + var publicWidget = require('web.public.widget'); + var rpc = require('web.rpc'); + publicWidget.registry.DeliveryWidget = publicWidget.Widget.extend({ + selector: ".available", + events: { + 'click .delivery_available': 'onClickAvailable', + }, + //When the delivery person accepts the delivery. + onClickAvailable(ev) { + var result = rpc.query({ + model: 'stock.picking', + method: 'delivery_available', + args: [, ], + }); + }, + }); + return publicWidget.registry.DeliveryWidget; +}); diff --git a/home_delivery_system/views/broadcasted_order_templates.xml b/home_delivery_system/views/broadcasted_order_templates.xml new file mode 100644 index 000000000..c4583cf58 --- /dev/null +++ b/home_delivery_system/views/broadcasted_order_templates.xml @@ -0,0 +1,56 @@ + + + + + diff --git a/home_delivery_system/views/completed_order_templates.xml b/home_delivery_system/views/completed_order_templates.xml new file mode 100644 index 000000000..8ce8a03dd --- /dev/null +++ b/home_delivery_system/views/completed_order_templates.xml @@ -0,0 +1,59 @@ + + + + + diff --git a/home_delivery_system/views/delivery_option_templates.xml b/home_delivery_system/views/delivery_option_templates.xml new file mode 100644 index 000000000..c749aeb3d --- /dev/null +++ b/home_delivery_system/views/delivery_option_templates.xml @@ -0,0 +1,169 @@ + + + +