fix_ctp1112345

This commit is contained in:
esam 2025-10-03 22:32:44 -04:00
parent f9450cc788
commit f94c496884
1 changed files with 22 additions and 20 deletions

View File

@ -18,12 +18,12 @@ class CtpDatabaseCleanUp(models.TransientModel):
_logger.warning('Model %s not found, skipping.', line) _logger.warning('Model %s not found, skipping.', line)
continue continue
if self.env[line]._abstract: if hasattr(self.env[line], '_abstract') and self.env[line]._abstract:
_logger.warning('Model %s is abstract, skipping as it has no table.', line) _logger.warning('Model %s is abstract, skipping.', line)
continue continue
table_name = self.env[line]._table table_name = self.env[line]._table
_logger.info('Attempting to TRUNCATE table for model: %s (table: %s)', line, table_name) _logger.info('Attempting to DELETE from table: %s', table_name)
safe_table_name = table_name.replace('"', '""') safe_table_name = table_name.replace('"', '""')
sql = 'DELETE FROM "%s"' % safe_table_name sql = 'DELETE FROM "%s"' % safe_table_name
@ -42,7 +42,6 @@ class CtpDatabaseCleanUp(models.TransientModel):
_logger.info('Reset sequence for %s', seq_code) _logger.info('Reset sequence for %s', seq_code)
except Exception as e: except Exception as e:
_logger.warning('Failed to reset sequence for %s: %s', seq_code, e) _logger.warning('Failed to reset sequence for %s: %s', seq_code, e)
return True return True
def remove_sales(self): def remove_sales(self):
@ -320,22 +319,25 @@ class CtpDatabaseCleanUp(models.TransientModel):
def remove_all(self): def remove_all(self):
_logger.info("--- Starting Full Database Cleanup ---") _logger.info("--- Starting Full Database Cleanup ---")
self.remove_pos()
self.remove_expense() cleanup_steps = [
self.remove_mrp() self.remove_pos, self.remove_expense, self.remove_mrp,
self.remove_sales() self.remove_sales, self.remove_purchase, self.remove_inventory,
self.remove_purchase() self.remove_project, self.remove_website, self.remove_message,
self.remove_inventory() self.remove_account_chart, self.remove_account,
self.remove_project() self.remove_quality, self.remove_quality_setting,
self.remove_account() self.remove_mrp_bom, self.remove_product_attribute, self.remove_product
self.remove_account_chart() ]
self.remove_website()
self.remove_message() for step in cleanup_steps:
self.remove_quality() try:
self.remove_quality_setting() step()
self.remove_mrp_bom() self._cr.commit()
self.remove_product_attribute() _logger.info("Successfully executed cleanup step: %s", step.__name__)
self.remove_product() except Exception as e:
_logger.error("--- A major step FAILED: %s. Error: %s. Continuing to next step. ---", step.__name__, e)
self._cr.rollback()
_logger.info("--- Full Database Cleanup Finished ---") _logger.info("--- Full Database Cleanup Finished ---")
return True return True