-- ============================================================
-- CLEAN ALL TRANSACTION DATA
-- This script removes ALL transaction/accounting/warehouse data
-- while preserving master data (accounts, items, vendors, settings)
-- ============================================================
-- WARNING: This is IRREVERSIBLE. Backup database before running!
-- ============================================================

SET FOREIGN_KEY_CHECKS = 0;

-- ============================================================
-- 1. ACCOUNTING - Transaction History & Related
-- ============================================================
TRUNCATE TABLE tblacc_account_history;
TRUNCATE TABLE tblacc_journal_entries;
TRUNCATE TABLE tblacc_transfers;
TRUNCATE TABLE tblacc_transaction_bankings;
TRUNCATE TABLE tblacc_bank_reconciles;
TRUNCATE TABLE tblacc_reconciles;
TRUNCATE TABLE tblacc_matched_transactions;
TRUNCATE TABLE tblacc_checks;
TRUNCATE TABLE tblacc_check_details;
TRUNCATE TABLE tblacc_checks_printed;
TRUNCATE TABLE tblacc_print_later;
TRUNCATE TABLE tblacc_pay_bills;
TRUNCATE TABLE tblacc_pay_bill_details;
TRUNCATE TABLE tblacc_pay_bill_item_paid;
TRUNCATE TABLE tblacc_plaid_transaction_logs;

-- ============================================================
-- 2. CHEQUE MANAGEMENT
-- ============================================================
TRUNCATE TABLE tblcheque_management;
TRUNCATE TABLE tblcheque_transactions;

-- ============================================================
-- 3. PURCHASE REQUESTS
-- ============================================================
TRUNCATE TABLE tblpur_request;
TRUNCATE TABLE tblpur_request_detail;

-- ============================================================
-- 4. PURCHASE ORDERS
-- ============================================================
TRUNCATE TABLE tblpur_orders;
TRUNCATE TABLE tblpur_order_detail;
TRUNCATE TABLE tblpur_order_payment;

-- ============================================================
-- 5. PURCHASE INVOICES
-- ============================================================
TRUNCATE TABLE tblpur_invoices;
TRUNCATE TABLE tblpur_invoice_details;
TRUNCATE TABLE tblpur_invoice_payment;

-- ============================================================
-- 6. PURCHASE DEBIT NOTES
-- ============================================================
TRUNCATE TABLE tblpur_debit_notes;
TRUNCATE TABLE tblpur_debits;
TRUNCATE TABLE tblpur_debits_refunds;

-- ============================================================
-- 7. GOODS RECEIPT (GRN)
-- ============================================================
TRUNCATE TABLE tblgoods_receipt;
TRUNCATE TABLE tblgoods_receipt_detail;
TRUNCATE TABLE tblgoods_receipt_history;
TRUNCATE TABLE tblgoods_receipt_history_detail;
TRUNCATE TABLE tblgoods_transaction_detail;

-- ============================================================
-- 8. GOODS DELIVERY
-- ============================================================
TRUNCATE TABLE tblgoods_delivery;
TRUNCATE TABLE tblgoods_delivery_detail;
TRUNCATE TABLE tblgoods_delivery_batch;
TRUNCATE TABLE tblgoods_delivery_invoices_pr_orders;
TRUNCATE TABLE tblwh_goods_delivery_activity_log;

-- ============================================================
-- 9. INVENTORY
-- ============================================================
TRUNCATE TABLE tblinventory_manage;

-- ============================================================
-- 10. SALES INVOICES & PAYMENTS
-- ============================================================
TRUNCATE TABLE tblinvoices;
TRUNCATE TABLE tblinvoicepaymentrecords;
TRUNCATE TABLE tblitemable;
TRUNCATE TABLE tblitem_tax;
TRUNCATE TABLE tblcreditnotes;
TRUNCATE TABLE tblcreditnote_refunds;

-- ============================================================
-- 11. EXPENSES
-- ============================================================
TRUNCATE TABLE tblexpenses;

-- ============================================================
-- 12. APPROVAL DETAILS (transaction-level, not settings)
-- ============================================================
TRUNCATE TABLE tblpur_approval_details;
TRUNCATE TABLE tblwh_approval_details;

-- ============================================================
-- 13. RESET AUTO-INCREMENT COUNTERS
-- ============================================================
-- Purchase
ALTER TABLE tblpur_request AUTO_INCREMENT = 1;
ALTER TABLE tblpur_orders AUTO_INCREMENT = 1;
ALTER TABLE tblpur_invoices AUTO_INCREMENT = 1;
ALTER TABLE tblpur_invoice_payment AUTO_INCREMENT = 1;
ALTER TABLE tblpur_order_payment AUTO_INCREMENT = 1;

-- Warehouse
ALTER TABLE tblgoods_receipt AUTO_INCREMENT = 1;
ALTER TABLE tblgoods_delivery AUTO_INCREMENT = 1;
ALTER TABLE tblinventory_manage AUTO_INCREMENT = 1;

-- Accounting
ALTER TABLE tblacc_account_history AUTO_INCREMENT = 1;
ALTER TABLE tblacc_journal_entries AUTO_INCREMENT = 1;
ALTER TABLE tblacc_transfers AUTO_INCREMENT = 1;
ALTER TABLE tblcheque_management AUTO_INCREMENT = 1;

-- Sales
ALTER TABLE tblinvoices AUTO_INCREMENT = 1;
ALTER TABLE tblinvoicepaymentrecords AUTO_INCREMENT = 1;
ALTER TABLE tblitemable AUTO_INCREMENT = 1;
ALTER TABLE tblitem_tax AUTO_INCREMENT = 1;
ALTER TABLE tblcreditnotes AUTO_INCREMENT = 1;
ALTER TABLE tblexpenses AUTO_INCREMENT = 1;

-- ============================================================
-- 14. RESET NUMBERING OPTIONS (optional - uncomment if needed)
-- ============================================================
-- UPDATE tbloptions SET value = '1' WHERE name = 'next_invoice_number';

SET FOREIGN_KEY_CHECKS = 1;

-- ============================================================
-- DONE. All transactions cleared. Master data preserved:
-- - Chart of Accounts (tblacc_accounts)
-- - Account Types (tblacc_account_type_details)  
-- - Tax Mappings (tblacc_tax_mappings)
-- - Payment Mode Mappings (tblacc_payment_mode_mappings)
-- - Items (tblitems)
-- - Vendors (tblpur_vendor)
-- - Customers (tblclients)
-- - Purchase Request Types (tblpur_request_types)
-- - Approval Settings (tblpur_approval_setting, tblwh_approval_setting)
-- - Warehouses (tblwarehouse)
-- - All system settings (tbloptions)
-- ============================================================
