import sys def fix_company_journals(env): company_name = 'Kedai Kipas 58 Tenggilis' company = env['res.company'].search([('name', 'ilike', company_name)], limit=1) if not company: print(f"Company {company_name} not found.") return print(f"Fixing journals for company: {company.name} (ID: {company.id})") # We look for the equivalent journals in Tenggilis # 1. Cash Basis Taxes (Usually code CABA or name 'Cash Basis Taxes') cash_basis_journal = env['account.journal'].search([ ('company_id', '=', company.id), ('code', '=', 'CABA') # Assuming code is CABA. If not, try by name. ], limit=1) if not cash_basis_journal: cash_basis_journal = env['account.journal'].search([ ('company_id', '=', company.id), ('name', 'ilike', 'Cash Basis') ], limit=1) vals = {} if cash_basis_journal: print(f"Setting Cash Basis Journal to: {cash_basis_journal.name} (ID: {cash_basis_journal.id})") vals['tax_cash_basis_journal_id'] = cash_basis_journal.id else: print("Could not find a Cash Basis journal for Tenggilis to set. You may need to clear it or create one.") vals['tax_cash_basis_journal_id'] = False # Temporary clear if not found to allow saving # 2. account_tax_periodicity_journal_id tax_journal = env['account.journal'].search([ ('company_id', '=', company.id), ('name', 'ilike', 'Kas Kecil Operasional Tenggilis') ], limit=1) if tax_journal: print(f"Setting Tax Periodicity Journal to: {tax_journal.name} (ID: {tax_journal.id})") vals['account_tax_periodicity_journal_id'] = tax_journal.id else: print("Could not find matching Tax Periodicity journal for Tenggilis. Clearing it to allow saving.") vals['account_tax_periodicity_journal_id'] = False company.write(vals) print(f"Fixed {len(vals)} company settings.") env.cr.commit() print("Done!") if __name__ == '__main__': try: fix_company_journals(env) except NameError: print("Run via odoo shell")