Skip to content

Commit

Permalink
[ADD] Window Isntaller: Adding the refered module
Browse files Browse the repository at this point in the history
Summary: Implemented Chassis Installer app for managing window/chassis installation projects.

Features/App:

Project management: Conceptualization to execution
CRM: Manage customer opportunities
Quotation: Create and send detailed quotations
Document management: Centralize project documents
Inventory: Track materials and deliveries
Project tracking: Monitor progress and resources
Invoicing: Generate down payments and invoices
Customer service: Handle queries via Helpdesk
Resource management: Manage employees, equipment, and fleet

task-4060439
  • Loading branch information
jaeschwa committed Jul 18, 2024
1 parent a2e8ebe commit 72ebd7e
Show file tree
Hide file tree
Showing 56 changed files with 1,792 additions and 0 deletions.
59 changes: 59 additions & 0 deletions window_installer/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
'name': 'Window Installation',
'version': '17.4',
'category': 'Services',
'description': """
This industry is ideal for window installation businesses proficient in managing projects from conception to completion,
focusing on accurate quoting, efficient planning, seamless execution, and excellent customer service, ...
""",
'depends': [
'crm_enterprise',
'documents',
'helpdesk',
'hr_fleet',
'industry_fsm',
'knowledge',
'maintenance',
'purchase_stock',
'sale_crm',
'sale_margin',
'sale_project_forecast',
'sign',
'mrp',
],
'data': [
'data/documents_folder.xml',
'data/stock_location.xml',
'data/ir_attachment_pre.xml',
'data/knowledge_cover.xml',
'data/knowledge_article.xml',
'data/knowledge_article_favorite.xml',
'data/product_category.xml',
'data/project_project.xml',
'data/project_task_type.xml',
'data/product_template.xml',
'data/mail_message.xml',
'data/product_attribute.xml',
'data/product_attribute_value.xml',
'data/product_template_attribute_line.xml',
'data/product_template_attribute_value.xml',
'data/product_product.xml',
],
'demo': [
'demo/res_partner.xml',
'demo/hr_employee.xml',
'demo/account_analytic_account.xml',
'demo/crm_lead.xml',
'demo/project_task_stage_personal.xml',
'demo/planning_recurrency.xml',
'demo/planning_slot.xml',
'demo/purchase_order.xml',
'demo/purchase_order_line.xml',
'demo/sale_order.xml',
'demo/sale_order_line.xml',
'demo/product_supplierinfo.xml',
'demo/project_task.xml',
],
'license': 'OPL-1',
'images': ['images/main.png'],
}
19 changes: 19 additions & 0 deletions window_installer/data/documents_folder.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="documents_folder_9" model="documents.folder">
<field name="name">Internal</field>
<field name="parent_folder_id" ref="documents_project.documents_project_folder"/>
</record>
<record id="documents_folder_11" model="documents.folder" forcecreate="1">
<field name="name">Project Template</field>
<field name="parent_folder_id" ref="documents_project.documents_project_folder"/>
</record>
<record id="documents_folder_12" model="documents.folder" forcecreate="1">
<field name="name">S00001 - VDK Project</field>
<field name="parent_folder_id" ref="documents_project.documents_project_folder"/>
</record>
<record id="documents_folder_17" model="documents.folder">
<field name="name">S00004 - Project Template</field>
<field name="parent_folder_id" ref="documents_project.documents_project_folder"/>
</record>
</odoo>
7 changes: 7 additions & 0 deletions window_installer/data/ir_attachment_pre.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="ir_attachment_872" model="ir.attachment">
<field name="name">site.jpg</field>
<field name="datas" type="base64" file="window_installer/static/src/binary/ir_attachment/site.jpg"/>
</record>
</odoo>
323 changes: 323 additions & 0 deletions window_installer/data/knowledge_article.xml

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions window_installer/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="knowledge_article_35"/>
<field name="user_id" ref="base.user_admin"/>
</record>
</odoo>
6 changes: 6 additions & 0 deletions window_installer/data/knowledge_cover.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="knowledge_cover_12" model="knowledge.cover" forcecreate="1">
<field name="attachment_id" ref="ir_attachment_872"/>
</record>
</odoo>
16 changes: 16 additions & 0 deletions window_installer/data/mail_message.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record model="mail.message" id="notification_knowledge">
<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">Knowledge article</field>
<field name="body" model="knowledge.article" eval="
'&lt;br>Hey! Need help?&lt;/br>
&lt;br>Checkout this &lt;a href=\''
+ obj().env.ref('window_installer.knowledge_article_35').article_url.replace(obj().get_base_url(), '')
+ '\'>article&lt;/a>&lt;/br>'"/>
</record>
</odoo>
6 changes: 6 additions & 0 deletions window_installer/data/product_attribute.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="product_attribute_1" model="product.attribute">
<field name="name">Color</field>
</record>
</odoo>
19 changes: 19 additions & 0 deletions window_installer/data/product_attribute_value.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="product_attribute_value_1" model="product.attribute.value">
<field name="name">Blue</field>
<field name="attribute_id" ref="product_attribute_1"/>
</record>
<record id="product_attribute_value_2" model="product.attribute.value">
<field name="name">White</field>
<field name="attribute_id" ref="product_attribute_1"/>
</record>
<record id="product_attribute_value_3" model="product.attribute.value">
<field name="name">Black</field>
<field name="attribute_id" ref="product_attribute_1"/>
</record>
<record id="product_attribute_value_4" model="product.attribute.value">
<field name="name">Grey</field>
<field name="attribute_id" ref="product_attribute_1"/>
</record>
</odoo>
12 changes: 12 additions & 0 deletions window_installer/data/product_category.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="product_category_5" model="product.category" forcecreate="1">
<field name="name">Building Materials</field>
</record>
<record id="product_category_6" model="product.category" forcecreate="1">
<field name="name">Workforce</field>
</record>
<record id="product_category_7" model="product.category" forcecreate="1">
<field name="name">Others</field>
</record>
</odoo>
85 changes: 85 additions & 0 deletions window_installer/data/product_product.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">

<record id="product_product_7" model="product.product" forcecreate="1">
<field name="standard_price">0.8</field>
<field name="product_tmpl_id" ref="product_product_7_product_template"/>
</record>
<record id="product_product_8" model="product.product" forcecreate="1">
<field name="product_tmpl_id" ref="product_product_8_product_template"/>
</record>
<record id="product_product_15" model="product.product">
<field name="product_template_variant_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_1')])]"/>
<field name="product_template_attribute_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_1')])]"/>
<field name="bom_count">1</field>
<field name="product_tmpl_id" ref="product_template_15"/>
</record>
<record id="product_product_16" model="product.product">
<field name="product_template_variant_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_2')])]"/>
<field name="product_template_attribute_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_2')])]"/>
<field name="bom_count">1</field>
<field name="product_tmpl_id" ref="product_template_15"/>
</record>
<record id="product_product_17" model="product.product">
<field name="product_template_variant_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_3')])]"/>
<field name="product_template_attribute_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_3')])]"/>
<field name="bom_count">1</field>
<field name="product_tmpl_id" ref="product_template_15"/>
</record>
<record id="product_product_18" model="product.product">
<field name="product_template_variant_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_4')])]"/>
<field name="product_template_attribute_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_4')])]"/>
<field name="bom_count">1</field>
<field name="product_tmpl_id" ref="product_template_16"/>
</record>
<record id="product_product_19" model="product.product">
<field name="product_template_variant_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_5')])]"/>
<field name="product_template_attribute_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_5')])]"/>
<field name="bom_count">2</field>
<field name="product_tmpl_id" ref="product_template_16"/>
</record>
<record id="product_product_20" model="product.product">
<field name="product_template_variant_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_6')])]"/>
<field name="product_template_attribute_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_6')])]"/>
<field name="product_tmpl_id" ref="product_template_16"/>
</record>
<record id="product_product_22" model="product.product">
<field name="product_tmpl_id" ref="product_template_18"/>
<field name="used_in_bom_count">6</field>
</record>
<record id="product_product_23" model="product.product">
<field name="product_tmpl_id" ref="product_template_19"/>
<field name="used_in_bom_count">3</field>
</record>
<record id="product_product_24" model="product.product">
<field name="product_template_variant_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_7')])]"/>
<field name="product_template_attribute_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_7')])]"/>
<field name="product_tmpl_id" ref="product_template_17"/>
<field name="used_in_bom_count">1</field>
</record>
<record id="product_product_25" model="product.product">
<field name="product_template_variant_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_8')])]"/>
<field name="product_template_attribute_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_8')])]"/>
<field name="product_tmpl_id" ref="product_template_17"/>
<field name="used_in_bom_count">2</field>
</record>
<record id="product_product_26" model="product.product">
<field name="product_template_variant_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_9')])]"/>
<field name="product_template_attribute_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_9')])]"/>
<field name="product_tmpl_id" ref="product_template_17"/>
<field name="used_in_bom_count">2</field>
</record>
<record id="product_product_27" model="product.product">
<field name="product_template_variant_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_10')])]"/>
<field name="product_template_attribute_value_ids" eval="[(6, 0, [ref('product_template_attribute_value_10')])]"/>
<field name="product_tmpl_id" ref="product_template_17"/>
<field name="used_in_bom_count">1</field>
</record>
<record id="product_product_28" model="product.product">
<field name="product_tmpl_id" ref="product_template_20"/>
<field name="used_in_bom_count">3</field>
</record>
<record id="product_product_29" model="product.product">
<field name="product_tmpl_id" ref="product_template_21"/>
</record>
</odoo>
142 changes: 142 additions & 0 deletions window_installer/data/product_template.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="product_product_7_product_template" model="product.template" context="{'create_product_product': False}" forcecreate="1">
<field name="name">Travelling costs</field>
<field name="categ_id" ref="product.product_category_all"/>
<field name="uom_id" ref="uom.product_uom_km"/>
<field name="purchase_method">purchase</field>
<field name="uom_po_id" ref="uom.product_uom_km"/>
<field name="invoice_policy">order</field>
<field name="property_stock_inventory" ref="stock_location_14"/>
<field name="image_1920" type="base64" file="window_installer/static/src/binary/product_template/13-image_1920"/>
<field name="service_type">manual</field>
<field name="property_stock_production" ref="stock_location_15"/>
<field name="route_ids" eval="[(6, 0, [ref('purchase_stock.route_warehouse0_buy')])]"/>
</record>
<record id="product_product_8_product_template" model="product.template" context="{'create_product_product': False}" forcecreate="1">
<field name="name">Labor hour with equipment</field>
<field name="categ_id" ref="product.product_category_all"/>
<field name="uom_id" ref="uom.product_uom_hour"/>
<field name="purchase_method">purchase</field>
<field name="uom_po_id" ref="uom.product_uom_hour"/>
<field name="invoice_policy">delivery</field>
<field name="property_stock_inventory" ref="stock_location_14"/>
<field name="image_1920" type="base64" file="window_installer/static/src/binary/product_template/14-image_1920"/>
<field name="service_type">timesheet</field>
<field name="list_price">120.0</field>
<field name="service_tracking">task_in_project</field>
<field name="property_stock_production" ref="stock_location_15"/>
<field name="project_template_id" ref="project_project_3"/>
<field name="route_ids" eval="[(6, 0, [ref('purchase_stock.route_warehouse0_buy')])]"/>
</record>
<record id="product_template_15" model="product.template" context="{'create_product_product': False}">
<field name="name">Wood Window Frame</field>
<field name="categ_id" ref="product.product_category_all"/>
<field name="purchase_method">receive</field>
<field name="invoice_policy">delivery</field>
<field name="has_configurable_attributes" eval="True"/>
<field name="property_stock_inventory" ref="stock_location_14"/>
<field name="is_storable" eval="True"/>
<field name="image_1920" type="base64" file="window_installer/static/src/binary/product_template/15-image_1920"/>
<field name="service_type">manual</field>
<field name="list_price">600.0</field>
<field name="purchase_ok" eval="False"/>
<field name="property_stock_production" ref="stock_location_15"/>
<field name="bom_count">3</field>
<field name="route_ids" eval="[(6, 0, [ref('mrp.route_warehouse0_manufacture')])]"/>
</record>
<record id="product_template_16" model="product.template" context="{'create_product_product': False}">
<field name="name">PVC Window</field>
<field name="categ_id" ref="product.product_category_all"/>
<field name="purchase_method">receive</field>
<field name="invoice_policy">delivery</field>
<field name="has_configurable_attributes" eval="True"/>
<field name="property_stock_inventory" ref="stock_location_14"/>
<field name="is_storable" eval="True"/>
<field name="image_1920" type="base64" file="window_installer/static/src/binary/product_template/16-image_1920"/>
<field name="service_type">manual</field>
<field name="list_price">1500.0</field>
<field name="purchase_ok" eval="False"/>
<field name="property_stock_production" ref="stock_location_15"/>
<field name="bom_count">3</field>
<field name="route_ids" eval="[(6, 0, [ref('mrp.route_warehouse0_manufacture')])]"/>
</record>
<record id="product_template_17" model="product.template" context="{'create_product_product': False}">
<field name="name">Paint</field>
<field name="categ_id" ref="product.product_category_all"/>
<field name="purchase_method">receive</field>
<field name="sale_ok" eval="False"/>
<field name="invoice_policy">order</field>
<field name="has_configurable_attributes" eval="True"/>
<field name="property_stock_inventory" ref="stock_location_14"/>
<field name="is_storable" eval="True"/>
<field name="image_1920" type="base64" file="window_installer/static/src/binary/product_template/17-image_1920"/>
<field name="service_type">manual</field>
<field name="list_price" eval="False"/>
<field name="can_image_1024_be_zoomed" eval="True"/>
<field name="property_stock_production" ref="stock_location_15"/>
<field name="used_in_bom_count">6</field>
<field name="route_ids" eval="[(6, 0, [ref('purchase_stock.route_warehouse0_buy')])]"/>
</record>
<record id="product_template_18" model="product.template" context="{'create_product_product': False}">
<field name="name">Glass</field>
<field name="categ_id" ref="product.product_category_all"/>
<field name="purchase_method">receive</field>
<field name="sale_ok" eval="False"/>
<field name="invoice_policy">order</field>
<field name="property_stock_inventory" ref="stock_location_14"/>
<field name="is_storable" eval="True"/>
<field name="image_1920" type="base64" file="window_installer/static/src/binary/product_template/18-image_1920"/>
<field name="service_type">manual</field>
<field name="list_price" eval="False"/>
<field name="property_stock_production" ref="stock_location_15"/>
<field name="used_in_bom_count">6</field>
<field name="route_ids" eval="[(6, 0, [ref('purchase_stock.route_warehouse0_buy')])]"/>
</record>
<record id="product_template_19" model="product.template" context="{'create_product_product': False}">
<field name="name">Wood</field>
<field name="categ_id" ref="product.product_category_all"/>
<field name="purchase_method">receive</field>
<field name="sale_ok" eval="False"/>
<field name="invoice_policy">order</field>
<field name="property_stock_inventory" ref="stock_location_14"/>
<field name="is_storable" eval="True"/>
<field name="image_1920" type="base64" file="window_installer/static/src/binary/product_template/19-image_1920"/>
<field name="service_type">manual</field>
<field name="list_price" eval="False"/>
<field name="property_stock_production" ref="stock_location_15"/>
<field name="used_in_bom_count">3</field>
<field name="route_ids" eval="[(6, 0, [ref('purchase_stock.route_warehouse0_buy')])]"/>
</record>
<record id="product_template_20" model="product.template" context="{'create_product_product': False}">
<field name="name">PVC</field>
<field name="categ_id" ref="product.product_category_all"/>
<field name="purchase_method">receive</field>
<field name="sale_ok" eval="False"/>
<field name="invoice_policy">order</field>
<field name="property_stock_inventory" ref="stock_location_14"/>
<field name="is_storable" eval="True"/>
<field name="image_1920" type="base64" file="window_installer/static/src/binary/product_template/20-image_1920"/>
<field name="service_type">manual</field>
<field name="list_price" eval="False"/>
<field name="property_stock_production" ref="stock_location_15"/>
<field name="used_in_bom_count">3</field>
<field name="route_ids" eval="[(6, 0, [ref('purchase_stock.route_warehouse0_buy')])]"/>
</record>
<record id="product_template_21" model="product.template" context="{'create_product_product': False}">
<field name="name">Labor hour</field>
<field name="categ_id" ref="product.product_category_all"/>
<field name="uom_id" ref="uom.product_uom_hour"/>
<field name="purchase_method">purchase</field>
<field name="uom_po_id" ref="uom.product_uom_hour"/>
<field name="invoice_policy">delivery</field>
<field name="property_stock_inventory" ref="stock_location_14"/>
<field name="image_1920" type="base64" file="window_installer/static/src/binary/product_template/21-image_1920"/>
<field name="service_type">timesheet</field>
<field name="list_price">60.0</field>
<field name="service_tracking">task_in_project</field>
<field name="property_stock_production" ref="stock_location_15"/>
<field name="project_template_id" ref="project_project_3"/>
<field name="route_ids" eval="[(6, 0, [ref('purchase_stock.route_warehouse0_buy')])]"/>
</record>
</odoo>
Loading

0 comments on commit 72ebd7e

Please sign in to comment.