98 lines
2.7 KiB
Bash
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}"
|