Is it possible to make a daily cron job for the Inventory->Inventory Report->Inventory at Date action. The idea is to have that report run daily, save it to disk as a CSV and append to it each day. That way I can create a history of the inventory on hand for each day. I can handle the writing and saving the CSV, I just cant seem to figure out what the Inventory at Date action is running and how to be able to call it from a cron job
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Бухоблік
- Склад
- PoS
- Project
- MRP
Це запитання позначене
Yes, it is possible to schedule a daily cron job to run the "Inventory at Date" action in Odoo and save the report as a CSV file.
you can follow these steps:
Identify the Action: Find the Action associated with the "Inventory at Date" report. You can do this by navigating to the menu item manually and inspecting the action associated with it. Make a note of the action's XML ID.
Create a Python Method: Create a Python method that will be called by the cron job. This method should invoke the action identified in the previous step.
from odoo import models, api
class InventoryReport(models.Model):
_name = 'inventory.report'
@api.model
def generate_inventory_report(self):
action = self.env.ref('module_name.action_id')
# Replace 'module_name.action_id' with the actual XML ID of the action
action.run()
Define the Cron Job: Define a cron job that will execute the Python method on a daily basis. You can do this in the data section of your module's manifest file (__manifest__.py)
depends': ['base'],
'data': [ 'data/cron_data.xml', ],
Create the Cron Data File: Create a data file (cron_data.xml) in the data directory of your module. This file will define the cron job.
odoo>
data>
record id="ir_cron_generate_inventory_report" model="ir.cron">
field name="name">Generate Inventory Report
field name="model_id" ref="model_inventory_report"/>
field name="state">code
field name="code">model.generate_inventory_report()
field name="interval_number">1
field name="interval_type">days
field name="numbercall">-1
field name="doall" eval="False"/>
field name="active" eval="True"/>
/record>
/data>
/odoo>
Note: Replace model_inventory_report with the actual XML ID of the model where you defined the generate_inventory_report method.
Update the XML ID: Replace 'module_name.action_id' in the Python method with the actual XML ID of the action associated with the "Inventory at Date" report.
Restart the Odoo Server: After making these changes, restart the Odoo server to load the new cron job.
Thank you for the answer, it seems like the Inventory at Date button just returns a act_window action and has no run method to it. You can see it here https://github.com/odoo/odoo/blob/15.0/addons/stock/wizard/stock_quantity_history.py
I'm confused as to how the on hand quantities are recalculated based on a simple date context
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
РеєстраціяRelated Posts | Відповіді | Переглядів | Дія | |
---|---|---|---|---|
|
1
квіт. 25
|
3742 | ||
|
0
лют. 24
|
1719 | ||
|
2
груд. 23
|
2819 | ||
|
1
лист. 23
|
1949 | ||
|
1
жовт. 23
|
7231 |