Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4ef24b0
[IMP] logistic_company: adapt storage category, add fee rate
frva-odoo Aug 7, 2025
bb5e166
[IMP] logistic_company: add owners for products and adapt stock
frva-odoo Aug 14, 2025
b0a2b13
[IMP] logistic_company: add stock quant portal view
frva-odoo Aug 19, 2025
7dad8bb
[IMP] logistic_company: Add stock occupation report view
frva-odoo Aug 19, 2025
4da4580
[FIX] logistic_company: add minimal for runbot
frva-odoo Aug 19, 2025
ab37efc
[FIX] logistic_company: add pot file and module in config
frva-odoo Aug 19, 2025
dfbb666
[IMP] logistic_company: adding stock history and fixing some issues
frva-odoo Aug 20, 2025
13e1b6c
[FIX] logistic_company: fix cron name for cloc
frva-odoo Aug 21, 2025
dea15a6
[FIX] logistic_company: fix website
frva-odoo Aug 24, 2025
1e91ffb
[FIX] logistic_company: fix issues 25/08 1
frva-odoo Aug 25, 2025
da0642c
[FIX] logistic_company: fix 26/08
frva-odoo Aug 26, 2025
638cdf0
[FIX] logistic_company: remove useless demo user
frva-odoo Aug 26, 2025
9cdff77
[FIX] logistic_company: fix portal access and add filter
frva-odoo Aug 26, 2025
b686e22
[FIX] logistic_company: add needed access
frva-odoo Aug 27, 2025
dc99190
[FIX] logistic_company: filter website and move fee rates
frva-odoo Aug 29, 2025
6c8bd82
[FIX] logistic_company: review changes 2/9
frva-odoo Sep 2, 2025
c1b16e6
[FIX] logistic_company: fix portal search on unstored
frva-odoo Sep 2, 2025
a7d762e
[IMP] logistic_company: add new fields 3/9 request
frva-odoo Sep 4, 2025
9ad8d2a
[ADD] 3pl_logistic_company: add module
frva-odoo Sep 9, 2025
37515f4
[FIX] 3pl_logistic_company: cleaning 1
frva-odoo Sep 9, 2025
bdaa696
[IMP] logistic_company: add custos
frva-odoo Sep 10, 2025
36fa237
[FIX] logistic_company: make code work
frva-odoo Sep 10, 2025
747c0b5
[FIX] logistic_company: cleaning 2
frva-odoo Sep 10, 2025
94948e0
[FIX] 3pl_logistic_company: correct demo data and move lines
frva-odoo Sep 12, 2025
58d35a2
[FIX] 3pl_logistic_company: fix runbot
frva-odoo Sep 12, 2025
347a76a
[FIX] 3pl_logistic_company: fix stock
frva-odoo Sep 15, 2025
2734e76
[FIX] 3pl_logistic_company: fix datas
frva-odoo Sep 15, 2025
235a47a
[FIX] 3pl_logistic_company: merging with logistic_company
frva-odoo Sep 15, 2025
36876a6
[FIX] 3pl_logistic_company: fix WH/IN/00012
frva-odoo Sep 15, 2025
24dc896
[FIX] 3pl_logistic_company: remove invalid locations
frva-odoo Sep 16, 2025
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
5 changes: 5 additions & 0 deletions .weblate.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
{
"projects": {
"odoo-s18-4": [
{
"name": "3pl_logistic_company",
"filemask": "3pl_logistic_company/i18n/*.po",
"new_base": "3pl_logistic_company/i18n/logistic_company.pot"
},
{
"name": "accounting_firm",
"filemask": "accounting_firm/i18n/*.po",
Expand Down
86 changes: 86 additions & 0 deletions 3pl_logistic_company/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
{
'name': '3PL Logistic Company',
'author': 'Odoo S.A.',
'version': '1.0',
'category': 'Services',
'depends': [
'base_industry_data',
'crm_sale_subscription',
'documents_hr',
'knowledge',
'product_expiry',
'purchase',
'quality_control',
'quality_mrp',
'sale_management',
'sale_service',
'sale_subscription',
'stock',
'web_studio',
'website',
],
'data': [
'data/ir_model.xml',
'data/ir_model_access.xml',
'data/ir_attachment_pre.xml',
'data/knowledge_cover.xml',
'data/knowledge_article.xml',
'data/knowledge_article_favorite.xml',
'data/ir_model_fields.xml',
'data/ir_actions_act_window.xml',
'data/portal_templates.xml',
'data/ir_actions_server.xml',
'data/base_automation.xml',
'data/x_fee_rate.xml',
'data/product_category.xml',
'data/uom_uom.xml',
'data/product_template.xml',
'data/product_product.xml',
'data/product_pricelist_item.xml',
'data/stock_package_type.xml',
'data/sale_order_template.xml',
'data/sale_order_template_line.xml',
'data/stock_storage_category.xml',
'data/stock_location.xml',
'data/ir_ui_menu.xml',
'data/ir_ui_view.xml',
'data/ir_cron.xml',
'data/qweb_view.xml',
'data/website_page.xml',
'data/website_menu.xml',
'data/stock_warehouse.xml',
'data/res_config_settings.xml',
'data/spreadsheet_dashboard.xml',
'data/mail_message.xml',
'data/website.xml',
],
'demo': [
'demo/quality_point.xml',
'demo/res_partner.xml',
'demo/product_template.xml',
'demo/mrp_bom.xml',
'demo/mrp_bom_line.xml',
'demo/stock_lot.xml',
'demo/stock_quant.xml',
'demo/x_stock_history.xml',
'demo/website_theme_apply.xml',
'demo/crm_lead.xml',
'demo/stock_package.xml',
'demo/sale_order.xml',
'demo/sale_order_line.xml',
'demo/sale_order_confirm.xml',
'demo/account_move.xml',
'demo/stock_picking.xml',
'demo/stock_move.xml',
'demo/stock_move_line.xml',
'demo/quality_check.xml',
],
'cloc_exclude': [
'data/ir_cron.xml',
'data/knowledge_article.xml',
'data/portal_templates.xml',
'data/qweb_view.xml',
],
'license': 'OPL-1',
'images': ['images/main.png'],
}
25 changes: 25 additions & 0 deletions 3pl_logistic_company/data/base_automation.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="base_automation_on_owner_set_change_tracking" model="base.automation">
<field name="name">On Owner Set On Product</field>
<field name="action_server_ids" eval="[(6, 0, [ref('action_change_product_storable_lots')])]"/>
<field name="model_id" ref="product.model_product_template"/>
<field name="on_change_field_ids" eval="[(6, 0, [ref('x_owner_field_product_template')])]"/>
<field name="filter_domain">[('x_owner_id', '!=', False)]</field>
<field name="trigger">on_change</field>
</record>

<record id="base_automation_on_move_line_created" model="base.automation">
<field name="name">On Move Line Created</field>
<field name="model_id" ref="stock.model_stock_move_line"/>
<field name="action_server_ids" eval="[(6, 0, [ref('action_update_move_line_owner')])]"/>
<field name="trigger">on_create</field>
</record>

<record id="base_automation_on_stock_move_changed" model="base.automation">
<field name="name">On Stock Move Create</field>
<field name="model_id" ref="stock.model_stock_picking"/>
<field name="trigger">on_create</field>
<field name="action_server_ids" eval="[(6, 0, [ref('action_update_stock_move_owner')])]"/>
</record>
</odoo>
25 changes: 25 additions & 0 deletions 3pl_logistic_company/data/ir_actions_act_window.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="action_fee_rate_list_view" model="ir.actions.act_window">
<field name="name">Fee rate list view</field>
<field name="res_model">x_fee_rate</field>
<field name="view_mode">list,form</field>
</record>
<record id="action_window_partner_see_products" model="ir.actions.act_window">
<field name="name">Partner related products view</field>
<field name="res_model">product.template</field>
<field name="view_mode">list,form</field>
<field name="domain">[('x_owner_id', '=', active_id)]</field>
</record>
<record id="action_window_stock_occupation_list_view" model="ir.actions.act_window">
<field name="name">Stock Occupation</field>
<field name="res_model">sale.order.line</field>
<field name="domain">[('x_subscription_state', '=', '3_progress')]</field>
<field name="view_mode">pivot,list</field>
</record>
<record id="action_window_stock_history_list_view" model="ir.actions.act_window">
<field name="name">Stock History</field>
<field name="res_model">x_stock_history</field>
<field name="view_mode">list,pivot</field>
</record>
</odoo>
42 changes: 42 additions & 0 deletions 3pl_logistic_company/data/ir_actions_server.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="product_route" model="ir.actions.server">
<field name="name">Route displaying products</field>
<field name="model_id" ref="product.model_product_product"/>
<field name="state">code</field>
<field name="website_published">True</field>
<field name="website_path">products</field>
<field name="code"><![CDATA[
response = request.render('3pl_logistic_company.portal_products')
]]></field>
</record>
<record id="action_change_product_storable_lots" model="ir.actions.server">
<field name="code"><![CDATA[
record.write({'is_storable': True, 'tracking': 'lot'})
]]></field>
<field name="model_id" ref="product.model_product_template"/>
<field name="state">code</field>
<field name="name">Execute Code</field>
</record>
<record id="action_update_move_line_owner" model="ir.actions.server">
<field name="code"><![CDATA[
for move_line in records:
move_line['owner_id'] = move_line.product_id.x_owner_id
]]></field>
<field name="model_id" ref="stock.model_stock_move_line"/>
<field name="state">code</field>
<field name="name">Execute Code</field>
</record>
<record id="action_update_stock_move_owner" model="ir.actions.server">
<field name="code"><![CDATA[
for pick in records:
if pick.move_ids:
first_owner = pick.move_ids[0].product_id.x_owner_id
if first_owner and not pick.move_ids.mapped('product_id.x_owner_id').filtered(lambda o: o.id != first_owner.id):
pick.write({'owner_id': first_owner})
]]></field>
<field name="model_id" ref="stock.model_stock_picking"/>
<field name="state">code</field>
<field name="name">Execute Code</field>
</record>
</odoo>
14 changes: 14 additions & 0 deletions 3pl_logistic_company/data/ir_attachment_pre.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="ir_attachment_1" model="ir.attachment">
<field name="name">ir_attachment_1.jpg</field>
<field name="datas" type="base64" file="3pl_logistic_company/static/src/binary/ir_attachment/ir_attachment_1.jpg"/>
<field name="url">/ir_attachment_1.jpg</field>
</record>
<record id="ir_attachment_2" model="ir.attachment">
<field name="name">ir_attachment_2.jpg</field>
<field name="datas" type="base64" file="3pl_logistic_company/static/src/binary/ir_attachment/ir_attachment_2.jpg"/>
<field name="url">/ir_attachment_2.jpg</field>
<field name="public" eval="True"/>
</record>
</odoo>
25 changes: 25 additions & 0 deletions 3pl_logistic_company/data/ir_cron.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="ir_cron_update_dgi_state" model="ir.cron">
<field name="name">Stock History-Create Daily Records</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="nextcall" eval="datetime.today().date()+relativedelta(days=1,minutes=1)"/>
<field name="model_id" ref="x_stock_history_model"/>
<field name="state">code</field>
<field name="code"><![CDATA[
for sq in env['stock.quant'].search([('location_id.usage', '=', 'internal')]):
sh = env['x_stock_history'].create({
'x_date': datetime.datetime.today().date(),
'x_history_owner_id': sq.product_tmpl_id.x_owner_id.id,
'x_location_id': sq.location_id.id,
'x_history_fee_rate_id': sq.location_id.x_location_fee_rate_id.id,
'x_product_id': sq.product_id.id,
'x_package_id': sq.package_id.id,
'x_stock_lot_id': sq.lot_id.id,
'x_quantity': sq.inventory_quantity_auto_apply,
})
sh['x_package_type'] = sh.x_package_master_container_id.package_type_id.name
]]></field>
</record>
</odoo>
11 changes: 11 additions & 0 deletions 3pl_logistic_company/data/ir_model.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="x_fee_rate_model" model="ir.model">
<field name="name">Fee Rate</field>
<field name="model">x_fee_rate</field>
</record>
<record id="x_stock_history_model" model="ir.model">
<field name="name">Stock History</field>
<field name="model">x_stock_history</field>
</record>
</odoo>
39 changes: 39 additions & 0 deletions 3pl_logistic_company/data/ir_model_access.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="fee_rate_user_access" model="ir.model.access">
<field name="group_id" ref="base.group_user"/>
<field name="model_id" ref="x_fee_rate_model"/>
<field name="name">x_fee_rate_user_access</field>
<field name="perm_create" eval="True"/>
<field name="perm_read" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record id="stock_history_user_access" model="ir.model.access">
<field name="group_id" ref="stock.group_stock_user"/>
<field name="model_id" ref="x_stock_history_model"/>
<field name="name">x_stock_history_user_access</field>
<field name="perm_create" eval="False"/>
<field name="perm_read" eval="True"/>
<field name="perm_unlink" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
<record id="stock_history_admin_access" model="ir.model.access">
<field name="group_id" ref="stock.group_stock_manager"/>
<field name="model_id" ref="x_stock_history_model"/>
<field name="name">x_stock_history_admin_access</field>
<field name="perm_create" eval="True"/>
<field name="perm_read" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record id="ir_ui_view_portal_access" model="ir.model.access">
<field name="group_id" ref="base.group_portal"/>
<field name="model_id" ref="base.model_ir_ui_view"/>
<field name="name">ir_ui_view_portal_access</field>
<field name="perm_create" eval="False"/>
<field name="perm_read" eval="True"/>
<field name="perm_unlink" eval="False"/>
<field name="perm_write" eval="False"/>
</record>
</odoo>
Loading