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
+230
View File
@@ -0,0 +1,230 @@
-- =============================================
-- Preview Company Data Reset
-- =============================================
-- This script shows what WOULD be deleted without actually deleting anything.
-- Use this to verify before running the actual ResetCompanyData.sql script.
-- =============================================
-- CONFIGURATION: Set ONE of these (comment out the other)
DECLARE @CompanyCode NVARCHAR(50) = 'DEMO'; -- Use company code
-- DECLARE @CompanyId INT = 1; -- OR use company ID directly
-- Get CompanyId from CompanyCode if needed
IF @CompanyCode IS NOT NULL AND EXISTS(SELECT 1 FROM Companies WHERE CompanyCode = @CompanyCode)
BEGIN
SELECT @CompanyId = Id FROM Companies WHERE CompanyCode = @CompanyCode;
END
-- Validate company exists
IF @CompanyId IS NULL OR NOT EXISTS(SELECT 1 FROM Companies WHERE Id = @CompanyId)
BEGIN
RAISERROR('Company not found! Please check @CompanyId or @CompanyCode', 16, 1);
RETURN;
END
-- Display company information
DECLARE @CompanyName NVARCHAR(200);
SELECT @CompanyName = CompanyName, @CompanyCode = CompanyCode FROM Companies WHERE Id = @CompanyId;
PRINT '=============================================';
PRINT 'PREVIEW: DATA TO BE DELETED FOR COMPANY:';
PRINT ' Company ID: ' + CAST(@CompanyId AS NVARCHAR(10));
PRINT ' Company Code: ' + @CompanyCode;
PRINT ' Company Name: ' + @CompanyName;
PRINT '=============================================';
PRINT '';
PRINT 'NOTE: This is a PREVIEW only. No data will be deleted.';
PRINT '';
DECLARE @Count INT;
DECLARE @TotalCount INT = 0;
-- Job Photos
SELECT @Count = COUNT(*)
FROM JobPhotos
WHERE JobId IN (SELECT Id FROM Jobs WHERE CompanyId = @CompanyId);
PRINT 'Job Photos: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Job Notes
SELECT @Count = COUNT(*)
FROM JobNotes
WHERE JobId IN (SELECT Id FROM Jobs WHERE CompanyId = @CompanyId);
PRINT 'Job Notes: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Job Items
SELECT @Count = COUNT(*)
FROM JobItems
WHERE JobId IN (SELECT Id FROM Jobs WHERE CompanyId = @CompanyId);
PRINT 'Job Items: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Jobs
SELECT @Count = COUNT(*) FROM Jobs WHERE CompanyId = @CompanyId;
PRINT 'Jobs: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Quote Items
SELECT @Count = COUNT(*)
FROM QuoteItems
WHERE QuoteId IN (SELECT Id FROM Quotes WHERE CompanyId = @CompanyId);
PRINT 'Quote Items: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Quotes
SELECT @Count = COUNT(*) FROM Quotes WHERE CompanyId = @CompanyId;
PRINT 'Quotes: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Appointments
IF OBJECT_ID('Appointments', 'U') IS NOT NULL
BEGIN
SELECT @Count = COUNT(*) FROM Appointments WHERE CompanyId = @CompanyId;
PRINT 'Appointments: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
END
-- Inventory Transactions
SELECT @Count = COUNT(*)
FROM InventoryTransactions
WHERE InventoryItemId IN (SELECT Id FROM InventoryItems WHERE CompanyId = @CompanyId);
PRINT 'Inventory Transactions: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Inventory Items
SELECT @Count = COUNT(*) FROM InventoryItems WHERE CompanyId = @CompanyId;
PRINT 'Inventory Items: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Maintenance Records
SELECT @Count = COUNT(*)
FROM MaintenanceRecords
WHERE EquipmentId IN (SELECT Id FROM Equipment WHERE CompanyId = @CompanyId);
PRINT 'Maintenance Records: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Equipment
SELECT @Count = COUNT(*) FROM Equipment WHERE CompanyId = @CompanyId;
PRINT 'Equipment: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Catalog Items
IF OBJECT_ID('CatalogItems', 'U') IS NOT NULL
BEGIN
SELECT @Count = COUNT(*) FROM CatalogItems WHERE CompanyId = @CompanyId;
PRINT 'Catalog Items: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
END
-- Catalog Categories
IF OBJECT_ID('CatalogCategories', 'U') IS NOT NULL
BEGIN
SELECT @Count = COUNT(*) FROM CatalogCategories WHERE CompanyId = @CompanyId;
PRINT 'Catalog Categories: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
END
-- Suppliers
IF OBJECT_ID('Suppliers', 'U') IS NOT NULL
BEGIN
SELECT @Count = COUNT(*) FROM Suppliers WHERE CompanyId = @CompanyId;
PRINT 'Suppliers: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
END
-- Customers
SELECT @Count = COUNT(*) FROM Customers WHERE CompanyId = @CompanyId;
PRINT 'Customers: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Pricing Tiers
SELECT @Count = COUNT(*) FROM PricingTiers WHERE CompanyId = @CompanyId;
PRINT 'Pricing Tiers: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Company Operating Costs
SELECT @Count = COUNT(*) FROM CompanyOperatingCosts WHERE CompanyId = @CompanyId;
PRINT 'Company Operating Costs: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
-- Company Preferences
IF OBJECT_ID('CompanyPreferences', 'U') IS NOT NULL
BEGIN
SELECT @Count = COUNT(*) FROM CompanyPreferences WHERE CompanyId = @CompanyId;
PRINT 'Company Preferences: ' + CAST(@Count AS NVARCHAR(10));
SET @TotalCount = @TotalCount + @Count;
END
PRINT '';
PRINT '=============================================';
PRINT 'TOTAL RECORDS TO BE DELETED: ' + CAST(@TotalCount AS NVARCHAR(10));
PRINT '=============================================';
PRINT '';
PRINT 'PRESERVED DATA (will NOT be deleted):';
PRINT ' - Company record: ' + @CompanyName;
PRINT ' - Users associated with company';
PRINT ' - Job Status Lookups';
PRINT ' - Job Priority Lookups';
PRINT ' - Quote Status Lookups';
PRINT ' - Inventory Category Lookups';
PRINT ' - Appointment Status Lookups';
PRINT ' - Appointment Type Lookups';
PRINT '';
-- Show sample data for verification
PRINT '=============================================';
PRINT 'SAMPLE DATA (first 5 of each type):';
PRINT '=============================================';
PRINT '';
-- Sample Customers
IF EXISTS(SELECT 1 FROM Customers WHERE CompanyId = @CompanyId)
BEGIN
PRINT 'CUSTOMERS:';
SELECT TOP 5
Id,
CompanyName,
ISNULL(ContactFirstName + ' ' + ContactLastName, 'N/A') AS ContactName,
Email
FROM Customers
WHERE CompanyId = @CompanyId
ORDER BY Id;
PRINT '';
END
-- Sample Jobs
IF EXISTS(SELECT 1 FROM Jobs WHERE CompanyId = @CompanyId)
BEGIN
PRINT 'JOBS:';
SELECT TOP 5
j.Id,
j.JobNumber,
c.CompanyName AS CustomerName,
j.Status,
j.CreatedAt
FROM Jobs j
LEFT JOIN Customers c ON j.CustomerId = c.Id
WHERE j.CompanyId = @CompanyId
ORDER BY j.Id;
PRINT '';
END
-- Sample Inventory
IF EXISTS(SELECT 1 FROM InventoryItems WHERE CompanyId = @CompanyId)
BEGIN
PRINT 'INVENTORY ITEMS:';
SELECT TOP 5
Id,
SKU,
Name,
QuantityOnHand,
UnitOfMeasure
FROM InventoryItems
WHERE CompanyId = @CompanyId
ORDER BY Id;
PRINT '';
END
PRINT '';
PRINT 'To proceed with deletion, run: ResetCompanyData.sql';