feat: add script to delete incorrect stock valuation layers and their associated account moves.
This commit is contained in:
parent
ad0e20a973
commit
7cddba3135
53
delete_valuation_layer_script.py
Normal file
53
delete_valuation_layer_script.py
Normal file
@ -0,0 +1,53 @@
|
||||
# SCRIPT TO DELETE INCORRECT VALUATION LAYER
|
||||
# Run this in: ./odoo-bin shell -d <your_db>
|
||||
|
||||
def fix_valuation():
|
||||
print("Searching for remaining candidate layers...")
|
||||
|
||||
# Broaden search to include the 420,000 one and any others similar
|
||||
layer_domain = [
|
||||
('product_id.name', 'ilike', 'Kotak Imlek Pink'),
|
||||
('quantity', '=', 0),
|
||||
('value', '!=', 0),
|
||||
('description', 'like', 'Valuation correction%') # Safety check
|
||||
]
|
||||
|
||||
layers = env['stock.valuation.layer'].search(layer_domain)
|
||||
|
||||
print(f"Found {len(layers)} remaining layers with 0 quantity and non-zero value.")
|
||||
|
||||
if not layers:
|
||||
print("No more incorrect layers found!")
|
||||
return
|
||||
|
||||
for layer in layers:
|
||||
print(f"\n---------------------------------------------------")
|
||||
print(f"Layer ID: {layer.id}")
|
||||
print(f"Product: {layer.product_id.display_name}")
|
||||
print(f"Description: {layer.description}")
|
||||
print(f"Value: {layer.value}")
|
||||
print(f"Linked Account Move: {layer.account_move_id.name if layer.account_move_id else 'None'}")
|
||||
|
||||
# We can just proceed to delete since we confirmed these are the bad ones
|
||||
# But let's check values to be sure it matches the 420k one or similar
|
||||
print(">>> DELETING <<<")
|
||||
|
||||
# UNLINK ACCOUNT MOVE
|
||||
if layer.account_move_id:
|
||||
print(f"Deleting associated account move: {layer.account_move_id.name}")
|
||||
try:
|
||||
if layer.account_move_id.state == 'posted':
|
||||
layer.account_move_id.button_draft()
|
||||
layer.account_move_id.unlink()
|
||||
except Exception as e:
|
||||
print(f"Could not delete account move: {e}")
|
||||
|
||||
# UNLINK LAYER
|
||||
print("Deleting layer...")
|
||||
layer.unlink()
|
||||
print("Layer deleted successfully.")
|
||||
|
||||
env.cr.commit()
|
||||
print("\nAll changes committed to database.")
|
||||
|
||||
fix_valuation()
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user