Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ADD] cleaning_services: Cleaning Services #520

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .tx/config
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,15 @@ resource_name = certification_organism
replace_edited_strings = false
keep_translations = false

[o:odoo:p:odoo-s18-1:r:cleaning_services]
file_filter = cleaning_services/i18n/<lang>.po
source_file = cleaning_services/i18n/cleaning_services.pot
type = PO
minimum_perc = 0
resource_name = cleaning_services
replace_edited_strings = false
keep_translations = false

[o:odoo:p:odoo-s18-1:r:clothing_boutique]
file_filter = clothing_boutique/i18n/<lang>.po
source_file = clothing_boutique/i18n/clothing_boutique.pot
Expand Down
57 changes: 57 additions & 0 deletions cleaning_services/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
'name': 'Cleaning Services',
'version': '1.0',
'category': 'Services',
'description': '',
'author': 'Odoo S.A.',
'depends': [
'crm_sale_subscription',
'hr',
'industry_fsm_sale',
'knowledge',
'project_purchase',
'project_sale_subscription',
],
'data': [
'data/res_config_settings.xml',
'data/product_category.xml',
'data/project_task_type.xml',
'data/project_project.xml',
'data/project_task_recurrence.xml',
'data/sale_subscription_plan.xml',
'data/sale_subscription_pricing.xml',
'data/product_product.xml',
'data/crm_tag.xml',
'data/sale_order_template.xml',
'data/sale_order_template_line.xml',
'data/knowledge_article.xml',
'data/knowledge_article_favorite.xml',
'data/mail_message.xml',
'data/knowledge_tour.xml',
],
'demo': [
'demo/res_company.xml',
'demo/res_partner.xml',
'demo/crm_lead.xml',
'demo/hr_department.xml',
'demo/hr_employee.xml',
'demo/product_supplierinfo.xml',
'demo/sale_order.xml',
'demo/sale_order_line.xml',
'demo/sale_order_confirm.xml',
'demo/account_analytic_line.xml',
'demo/purchase_order.xml',
'demo/purchase_order_line.xml',
],
'assets': {
'web.assets_backend': [
'cleaning_services/static/src/js/my_tour.js',
]
},
"cloc_exclude": [
"data/knowledge_article.xml",
"static/src/js/my_tour.js",
],
'images': ['images/main.png'],
'license': 'OPL-1',
}
54 changes: 54 additions & 0 deletions cleaning_services/data/crm_tag.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="crm_tag_1" model="crm.tag">
<field name="name">Large company</field>
</record>
<record id="crm_tag_2" model="crm.tag">
<field name="name">Standard Cleaning</field>
</record>
<record id="crm_tag_3" model="crm.tag">
<field name="name">Multi-Cleaner</field>
</record>
<record id="crm_tag_18" model="crm.tag">
<field name="name">Eco-Friendly</field>
</record>
<record id="crm_tag_19" model="crm.tag">
<field name="name"> Recurring Contract</field>
</record>
<record id="crm_tag_20" model="crm.tag">
<field name="name"> B2C</field>
</record>
<record id="crm_tag_21" model="crm.tag">
<field name="name">B2C</field>
</record>
<record id="crm_tag_22" model="crm.tag">
<field name="name"> Eco-Friendly</field>
</record>
<record id="crm_tag_23" model="crm.tag">
<field name="name"> Standard Cleaning</field>
</record>
<record id="crm_tag_24" model="crm.tag">
<field name="name">One-Time Service</field>
</record>
<record id="crm_tag_25" model="crm.tag">
<field name="name"> Premium Service</field>
</record>
<record id="crm_tag_26" model="crm.tag">
<field name="name">Urgent Request</field>
</record>
<record id="crm_tag_27" model="crm.tag">
<field name="name"> One-Time Service</field>
</record>
<record id="crm_tag_28" model="crm.tag">
<field name="name"> Urgent Request</field>
</record>
<record id="crm_tag_29" model="crm.tag">
<field name="name"> Multi-Cleaner</field>
</record>
<record id="crm_tag_30" model="crm.tag">
<field name="name">Deep Clean</field>
</record>
<record id="crm_tag_31" model="crm.tag">
<field name="name"> B2B</field>
</record>
</odoo>
129 changes: 129 additions & 0 deletions cleaning_services/data/knowledge_article.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<template id="welcome_article_body">
<h1 class="oe-hint" data-oe-version="1.0">
<span class="display-4-fs"><strong>Odoo for Cleaning Services</strong></span><br />
</h1>
<p>
Odoo empowers cleaning service businesses (B2B and B2C) with efficient, integrated solutions designed to streamline operations and elevate service quality. With a unified platform that handles everything from customer inquiries and
sales orders to on-site field tasks and invoicing, Odoo enables you to focus on delivering exceptional cleaning services while keeping your business agile and responsive.
</p>
<h2><span class="h1-fs">Basics</span></h2>
<hr />
<ul>
<li><strong>CRM</strong>: Manages customer inquiries and tracks leads with efficient follow-ups.</li>
<li><strong>Sales</strong>: Creates quotations and sales orders, converting leads into transactions.</li>
<li><strong>Field Service Tasks</strong>: Dispatches on-site cleaning tasks promptly upon order confirmation.</li>
<li><strong>Invoicing</strong>: Automates bill generation and tracks payments for seamless financial management.</li>
<li><strong>Recurring Service Visits</strong>: Schedules regular cleaning visits automatically for consistent service delivery.</li>
</ul>
<div class="o_editor_banner user-select-none o_not_editable lh-1 d-flex align-items-center alert alert-warning pb-0 pt-3">
<i class="o_editor_banner_icon mb-3 fst-normal">⚠️</i>
<div class="w-100 px-3">
<p>If you want to easily discover every features of this package, try downloading the Demo Data.</p>
<p>You can still do it by upgrading your package in Apps.</p>
<p>Just be careful, once demo data are uploaded, it cannot be easily deleted. But you can restart a fresh database on <a href="http://Odoo.com/trial">Odoo.com/trial</a></p>
</div>
</div>
<h2><strong>CRM for Opportunity Management</strong></h2>
<p>The CRM module helps you capture and track customer inquiries, manage communications through chatter, and schedule follow-up tasks. This enables you to build and nurture strong customer relationships right from the first contact.</p>
<ul>
<li><strong>Chatter</strong>: Use the chatter to communicate with team members, log notes, and keep a record of all updates related to the opportunity. Tag colleagues by typing @ followed by their name to send notifications.</li>
<li>
<strong>Activities</strong>: Schedule activities directly within the CRM to ensure timely follow-ups. Activities are actions users take on a document, like making a call or organizing a meeting. Pending activities are visible above
the message history in the chatter widget.
</li>
</ul>
<h2><strong>Quotations💲</strong></h2>
<p>At any time, you can create from an opportunity a beautiful and tailor-made quotation that displays the price, the discount, the unit of measure, and the tax of each:</p>
<ul>
<li>Material that will be used to complete the task.</li>
<li>Service such as labor hours, traveling costs, etc.</li>
</ul>
<p>Of course, feel free to create all the products you use often. This will save you time when preparing when preparing your next quotations.</p>
<p>Save time by directly sending the quotation by email to your customer. The personalized email provides:</p>
<ul>
<li>The quotation in PDF format.</li>
<li>A link to reach the online quotation from where the customer can confirm and sign it.</li>
</ul>
<p>
If the customer replies to the email, the answer is automatically logged in the chatter on the right of the screen. Thereby, all the discussions regarding the quotation, its updates, and its fine tuning are attached, and the history can
be easily consulted by all the involved users.
</p>
<p>Once confirmed, the quotation becomes a sales order. All quotations and sales orders are centralized in the <strong>Sales </strong>app.</p>
<div class="o_editor_banner user-select-none o_not_editable lh-1 d-flex align-items-center alert alert-info pb-0 pt-3">
<i class="o_editor_banner_icon mb-3 fst-normal">🚀</i>
<div class="w-100 px-3 o_editable"><p>If you want to push your quotation building much further and add all the power of Spreadsheet beneath any line of your Sales Orders, use the quote calculation feature.</p></div>
</div>
<p><a class="btn btn-outline-primary btn-sm" href="https://www.odoo.com/documentation/latest/applications/sales/sales.html">🎓 Sales</a></p>
<h2><strong>Field Service 🌱️</strong></h2>
<p>The confirmation of the quotation automatically triggers the creation of dedicated tasks in the <strong>Field Service app</strong>! Each task is linked to its parent Sales Order.</p>
<p>Assign the tasks to the right responsible and easily check the progress in the Kanban view.</p>
<p><strong>Recurrence</strong></p>
<p>
Our recurring task setting enables managing periodic cleaning appointments, reducing manual scheduling and fostering client loyalty. It only takes one click. From there on out, you can generate new quotations or sales orders in just
another click.
</p>
<h2><strong>Subscriptions 📥</strong></h2>
<p>
Do you also provide subscriptions for your cleaning services? Products can be easily set to have an automatic recurrence, with an associated price. Alternatively, if you work without subscription, but need to create field service
recurring task.
</p>
<h2><strong>Planning and Timesheets 📆</strong></h2>
<p>
Use the Planning in the <strong>Field Service ​app</strong> to organize the work of your employees. Define which project and when they have to work. Easily manage shift conflicts, workload, and replacements in case of leaves through the
Gantt view of the app.
</p>
<p>Record your employees' time spent on each task in the Timesheets tab of your field service tasks, and get an easy overview of all the timesheets in the Timesheets app.</p>
<h2><strong>Invoicing 💰</strong></h2>
<p>Invoicing automates invoice creation and management, and integrates effortlessly with the rest of Odoo.</p>
<ul>
<li>Send invoices to customer, log vendor bills and manage credit notes</li>
<li>Specify payment terms, taxes, and fiscal positions</li>
<li>Obtain accurate and actionable financial reporting in just a click</li>
</ul>
<h2><strong>Purchases 🛒</strong></h2>
<p>The Purchase module helps you manage supplier quotes, issue purchase orders, and track vendor bills seamlessly.</p>
<ul>
<li>Create new requests for quotation</li>
<li>Compare multiple vendor offers</li>
<li>Confirm vendor bills and create preliminary vendor bills</li>
</ul>
<div class="o_editor_banner user-select-none o_not_editable lh-1 d-flex align-items-center alert alert-success pb-0 pt-3">
<i class="o_editor_banner_icon mb-3 fst-normal">✅</i>
<div class="w-100 px-3 o_editable">
<h2><strong>Tips for success</strong></h2>
<ul>
<li>Install the Accounting app to synchronise to your bank, set-up payment reminders, and much more</li>
<li>Create custom filters in the field service app to stay ahead of your planning and get easy overviews of cleaning tasks</li>
<li>Explore the map view, gantt view, and others in the field service app to obtain helpful context about your daily cleaning activities.</li>
<li>Set up more quotation templates for regular visits, and explore the quotation calculator that can be linked to a quotation template.</li>
</ul>
</div>
</div>
<h1>Do You Want to Go Further?</h1>
<hr />
<ul>
<li>Use the <strong>Sign app: </strong>Sign facilitates secure digital contract signing, expediting agreement processes and record keeping.</li>
<li>Discover our <strong>HR apps</strong>: Efficiently oversee employee roles, attendance, and HR tasks with our comprehensive management app.</li>
<li>Install the <strong>Website app: </strong>create a beautiful website, and add a contact form that leads straight to the CRM app.</li>
</ul>
<div class="o_editor_banner user-select-none o_not_editable lh-1 d-flex align-items-center alert alert-info pb-0 pt-3">
<i class="o_editor_banner_icon mb-3 fst-normal">💡</i>
<div class="w-100 px-3">
<p>Would you like to discuss your Odoo setup with us or explore more features?</p>
<p><a href="https://www.odoo.com/contactus" class="btn btn-primary">Reach us</a></p>
</div>
</div>
<p><br /></p>
</template>

<record id="welcome_article" model="knowledge.article">
<field name="name">Cleaning Services</field>
<field name="body"><![CDATA[]]></field>
<field name="is_article_visible_by_everyone" eval="True"/>
<field name="internal_permission">write</field>
<field name="is_locked" eval="True"/>
<field name="icon">🧼</field>
</record>
</odoo>
7 changes: 7 additions & 0 deletions cleaning_services/data/knowledge_article_favorite.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="knowledge_favorite" model="knowledge.article.favorite">
<field name="article_id" ref="welcome_article"/>
<field name="user_id" ref="base.user_admin"/>
</record>
</odoo>
8 changes: 8 additions & 0 deletions cleaning_services/data/knowledge_tour.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="knowledge_tour" model="web_tour.tour">
<field name="name">cleaning_services_knowledge_tour</field>
<field name="sequence">2</field>
<field name="rainbow_man_message">Welcome! Happy exploring.</field>
</record>
</odoo>
15 changes: 15 additions & 0 deletions cleaning_services/data/mail_message.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="notification_knowledge" model="mail.message">
<field name="model">discuss.channel</field>
<field name="res_id" ref="mail.channel_all_employees"/>
<field name="message_type">email</field>
<field name="author_id" ref="base.partner_root"/>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">🚀 Get started with Odoo Cleaning Services</field>
<field name="body" model="knowledge.article" eval="
'&lt;span>&#x1F44B; Hi! Follow this &lt;a href=\''
+ obj().env.ref('cleaning_services.welcome_article').article_url
+ '\'>onboarding guide&lt;/a>. You can find it anytime in the Knowledge app.&lt;/span>'"/>
</record>
</odoo>
9 changes: 9 additions & 0 deletions cleaning_services/data/product_category.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="product_category_7" model="product.category">
<field name="name">Cleaning Products</field>
</record>
<record id="product_category_6" model="product.category">
<field name="name">Cleaning Services</field>
</record>
</odoo>
Loading