bmc_hub/scripts/link_tmodule_customers.sh
Christian ca53573952 feat: Enhance email processing and backup scheduling
- Added PostgreSQL client installation to Dockerfile for database interactions.
- Updated BackupScheduler to manage both backup jobs and email fetching jobs.
- Implemented email fetching job with logging and error handling.
- Enhanced the frontend to display scheduled jobs, including email fetch status.
- Introduced email upload functionality with drag-and-drop support and progress tracking.
- Added import_method tracking to email_messages for better source identification.
- Updated email parsing logic for .eml and .msg files, including attachment handling.
- Removed obsolete email scheduler service as functionality is integrated into BackupScheduler.
- Updated requirements for extract-msg to the latest version.
- Created migration script to add import_method column to email_messages table.
2026-01-06 15:11:28 +01:00

98 lines
2.7 KiB
Bash

#!/bin/bash
# Script til at linke tmodule_customers til customers automatisk
# Matcher baseret på navn eller economic_customer_number
set -e
CONTAINER_NAME="bmc-hub-postgres-prod"
DB_USER="bmc_hub"
DB_NAME="bmc_hub"
# Farver til output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# Check om container kører
if ! sudo podman ps | grep -q "$CONTAINER_NAME"; then
echo -e "${RED}❌ Container $CONTAINER_NAME kører ikke!${NC}"
exit 1
fi
echo -e "${GREEN}🔍 Finder kunder uden hub_customer_id...${NC}"
# Find alle tmodule_customers uden hub_customer_id
UNLINKED=$(sudo podman exec -i "$CONTAINER_NAME" psql -U "$DB_USER" -d "$DB_NAME" -t -c "
SELECT COUNT(*)
FROM tmodule_customers
WHERE hub_customer_id IS NULL;
")
echo -e "${YELLOW}📊 Fandt $UNLINKED ulinkede kunder${NC}"
if [ "$UNLINKED" -eq 0 ]; then
echo -e "${GREEN}✅ Alle kunder er allerede linket!${NC}"
exit 0
fi
echo -e "${GREEN}🔗 Linker kunder baseret på navn match...${NC}"
# Link kunder hvor navnet matcher præcist
LINKED=$(sudo podman exec -i "$CONTAINER_NAME" psql -U "$DB_USER" -d "$DB_NAME" -t -c "
UPDATE tmodule_customers tc
SET hub_customer_id = c.id
FROM customers c
WHERE tc.hub_customer_id IS NULL
AND LOWER(TRIM(tc.name)) = LOWER(TRIM(c.name))
RETURNING tc.id;
" | wc -l)
echo -e "${GREEN}✅ Linkede $LINKED kunder baseret på navn${NC}"
# Link kunder baseret på economic_customer_number (hvis begge har det)
echo -e "${GREEN}🔗 Linker kunder baseret på economic_customer_number...${NC}"
LINKED_ECON=$(sudo podman exec -i "$CONTAINER_NAME" psql -U "$DB_USER" -d "$DB_NAME" -t -c "
UPDATE tmodule_customers tc
SET hub_customer_id = c.id
FROM customers c
WHERE tc.hub_customer_id IS NULL
AND tc.economic_customer_number IS NOT NULL
AND c.economic_customer_number IS NOT NULL
AND tc.economic_customer_number = c.economic_customer_number
RETURNING tc.id;
" | wc -l)
echo -e "${GREEN}✅ Linkede $LINKED_ECON kunder baseret på economic_customer_number${NC}"
# Vis stadig ulinkede kunder
echo -e "${YELLOW}📋 Kunder der stadig mangler link:${NC}"
sudo podman exec -i "$CONTAINER_NAME" psql -U "$DB_USER" -d "$DB_NAME" -c "
SELECT
tc.id,
tc.vtiger_id,
tc.name,
tc.economic_customer_number
FROM tmodule_customers tc
WHERE tc.hub_customer_id IS NULL
ORDER BY tc.name
LIMIT 20;
"
REMAINING=$(sudo podman exec -i "$CONTAINER_NAME" psql -U "$DB_USER" -d "$DB_NAME" -t -c "
SELECT COUNT(*)
FROM tmodule_customers
WHERE hub_customer_id IS NULL;
")
echo -e "${YELLOW}⚠️ $REMAINING kunder mangler stadig link${NC}"
if [ "$REMAINING" -gt 0 ]; then
echo -e "${YELLOW}💡 Disse skal linkes manuelt via UI eller direkte SQL${NC}"
fi
echo -e "${GREEN}✅ Linking komplet!${NC}"