bmc_hub/scripts/link_tmodule_customers.sh

98 lines
2.7 KiB
Bash
Raw Permalink Normal View History

#!/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}"