Initial commit

This commit is contained in:
2026-04-23 21:38:24 -04:00
commit 63e12a9636
1762 changed files with 1672620 additions and 0 deletions
+211
View File
@@ -0,0 +1,211 @@
-- ============================================================================
-- HARD DELETE ALL COMPANY DATA - Demo Company Only
-- WARNING: This permanently deletes all data for the specified company!
-- ============================================================================
SET NOCOUNT ON;
DECLARE @CompanyId INT = 1; -- Demo Company (change if needed)
DECLARE @CompanyName NVARCHAR(255);
DECLARE @RowsDeleted INT = 0;
-- Get company name for confirmation
SELECT @CompanyName = CompanyName FROM Companies WHERE Id = @CompanyId;
PRINT '============================================================================';
PRINT 'HARD DELETE - Company: ' + ISNULL(@CompanyName, 'NOT FOUND');
PRINT 'Company ID: ' + CAST(@CompanyId AS NVARCHAR(10));
PRINT 'Started at: ' + CONVERT(NVARCHAR(30), GETDATE(), 120);
PRINT '============================================================================';
PRINT '';
IF @CompanyName IS NULL
BEGIN
PRINT 'ERROR: Company not found!';
RETURN;
END
BEGIN TRANSACTION;
BEGIN TRY
-- ========================================================================
-- LEVEL 1: Most dependent tables (delete first)
-- ========================================================================
PRINT 'Deleting Level 1: Most dependent tables...';
-- JobStatusHistory (references Jobs)
DELETE FROM JobStatusHistory WHERE JobId IN (SELECT Id FROM Jobs WHERE CompanyId = @CompanyId);
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ JobStatusHistory: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- JobPhotos (references Jobs)
DELETE FROM JobPhotos WHERE JobId IN (SELECT Id FROM Jobs WHERE CompanyId = @CompanyId);
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ JobPhotos: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- JobNotes (references Jobs)
DELETE FROM JobNotes WHERE JobId IN (SELECT Id FROM Jobs WHERE CompanyId = @CompanyId);
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ JobNotes: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- Appointments (references Jobs, Customers)
DELETE FROM Appointments WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ Appointments: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- JobItems (references Jobs)
DELETE FROM JobItems WHERE JobId IN (SELECT Id FROM Jobs WHERE CompanyId = @CompanyId);
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ JobItems: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- QuoteItems (references Quotes)
DELETE FROM QuoteItems WHERE QuoteId IN (SELECT Id FROM Quotes WHERE CompanyId = @CompanyId);
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ QuoteItems: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- InventoryTransactions (references InventoryItems)
DELETE FROM InventoryTransactions WHERE InventoryItemId IN (SELECT Id FROM InventoryItems WHERE CompanyId = @CompanyId);
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ InventoryTransactions: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- MaintenanceRecords (references Equipment)
DELETE FROM MaintenanceRecords WHERE EquipmentId IN (SELECT Id FROM Equipment WHERE CompanyId = @CompanyId);
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ MaintenanceRecords: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
PRINT '';
-- ========================================================================
-- LEVEL 2: Mid-level dependencies
-- ========================================================================
PRINT 'Deleting Level 2: Mid-level dependencies...';
-- Jobs (references Customers, Quotes)
DELETE FROM Jobs WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ Jobs: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- Quotes (references Customers)
DELETE FROM Quotes WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ Quotes: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- CatalogItems (references CatalogCategories, Customers)
DELETE FROM CatalogItems WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ CatalogItems: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
PRINT '';
-- ========================================================================
-- LEVEL 3: Base entities
-- ========================================================================
PRINT 'Deleting Level 3: Base entities...';
-- Customers
DELETE FROM Customers WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ Customers: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- InventoryItems
DELETE FROM InventoryItems WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ InventoryItems: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- Equipment
DELETE FROM Equipment WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ Equipment: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- CatalogCategories
DELETE FROM CatalogCategories WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ CatalogCategories: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- ShopWorkers
DELETE FROM ShopWorkers WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ ShopWorkers: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- PricingTiers
DELETE FROM PricingTiers WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ PricingTiers: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- CompanyOperatingCosts
DELETE FROM CompanyOperatingCosts WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ CompanyOperatingCosts: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- Suppliers
DELETE FROM Suppliers WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ Suppliers: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
PRINT '';
-- ========================================================================
-- LEVEL 4: Lookup tables (delete last)
-- ========================================================================
PRINT 'Deleting Level 4: Lookup tables...';
-- JobStatusLookup
DELETE FROM JobStatusLookup WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ JobStatusLookup: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- JobPriorityLookup
DELETE FROM JobPriorityLookup WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ JobPriorityLookup: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- QuoteStatusLookup
DELETE FROM QuoteStatusLookup WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ QuoteStatusLookup: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- AppointmentStatusLookup
DELETE FROM AppointmentStatusLookup WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ AppointmentStatusLookup: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- AppointmentTypeLookup
DELETE FROM AppointmentTypeLookup WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ AppointmentTypeLookup: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
-- InventoryCategoryLookup
DELETE FROM InventoryCategoryLookup WHERE CompanyId = @CompanyId;
SET @RowsDeleted = @@ROWCOUNT;
PRINT ' ✓ InventoryCategoryLookup: ' + CAST(@RowsDeleted AS NVARCHAR(10)) + ' rows';
PRINT '';
PRINT '============================================================================';
PRINT 'SUCCESS! All company data deleted.';
PRINT 'Completed at: ' + CONVERT(NVARCHAR(30), GETDATE(), 120);
PRINT '============================================================================';
COMMIT TRANSACTION;
PRINT '';
PRINT 'Transaction committed successfully.';
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
PRINT '';
PRINT '============================================================================';
PRINT 'ERROR! Rolling back transaction...';
PRINT '';
PRINT 'Error Message: ' + ERROR_MESSAGE();
PRINT 'Error Line: ' + CAST(ERROR_LINE() AS NVARCHAR(10));
PRINT '============================================================================';
-- Re-throw the error
THROW;
END CATCH;
SET NOCOUNT OFF;