diff --git a/fusion_accounting_assets/__manifest__.py b/fusion_accounting_assets/__manifest__.py index 32667dd1..c861e57f 100644 --- a/fusion_accounting_assets/__manifest__.py +++ b/fusion_accounting_assets/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Fusion Accounting Assets', - 'version': '19.0.1.0.24', + 'version': '19.0.1.0.25', 'category': 'Accounting/Accounting', 'summary': 'AI-augmented asset management with depreciation schedules.', 'description': """ @@ -50,6 +50,8 @@ menu hides; the engine + AI tools remain available for the chat. 'fusion_accounting_assets/static/src/components/asset_detail_panel/asset_detail_panel.xml', 'fusion_accounting_assets/static/src/components/depreciation_board/depreciation_board.js', 'fusion_accounting_assets/static/src/components/depreciation_board/depreciation_board.xml', + 'fusion_accounting_assets/static/src/components/disposal_dialog/disposal_dialog.js', + 'fusion_accounting_assets/static/src/components/disposal_dialog/disposal_dialog.xml', ], }, 'installable': True, diff --git a/fusion_accounting_assets/static/src/components/disposal_dialog/disposal_dialog.js b/fusion_accounting_assets/static/src/components/disposal_dialog/disposal_dialog.js new file mode 100644 index 00000000..0c8a8563 --- /dev/null +++ b/fusion_accounting_assets/static/src/components/disposal_dialog/disposal_dialog.js @@ -0,0 +1,34 @@ +/** @odoo-module **/ + +import { Component, useState } from "@odoo/owl"; +import { useService } from "@web/core/utils/hooks"; + +export class DisposalDialog extends Component { + static template = "fusion_accounting_assets.DisposalDialog"; + static props = { + assetId: { type: Number }, + onClose: { type: Function }, + }; + + setup() { + this.assets = useService("fusion_assets"); + this.state = useState({ + disposalType: 'sale', + saleAmount: 0, + saleDate: new Date().toISOString().slice(0, 10), + }); + } + + async onConfirm() { + try { + await this.assets.disposeAsset(this.props.assetId, { + disposalType: this.state.disposalType, + saleAmount: parseFloat(this.state.saleAmount) || 0, + saleDate: this.state.saleDate, + }); + this.props.onClose(); + } catch (e) { + // Error already shown by service + } + } +} diff --git a/fusion_accounting_assets/static/src/components/disposal_dialog/disposal_dialog.xml b/fusion_accounting_assets/static/src/components/disposal_dialog/disposal_dialog.xml new file mode 100644 index 00000000..a3913562 --- /dev/null +++ b/fusion_accounting_assets/static/src/components/disposal_dialog/disposal_dialog.xml @@ -0,0 +1,45 @@ + + + + + + + +