-- Script per copiare record mancanti di tbl_strOspiti da un database all'altro
-- 
-- IMPORTANTE: Sostituisci 'database_origine' e 'database_destinazione' con i nomi reali
-- 
-- Esempio di uso:
-- mysql -u root -p < sync_strOspiti.sql
-- 
-- Oppure modifica manualmente i nomi dei database qui sotto ed esegui

-- Script per copiare record mancanti di tbl_strOspiti da un database all'altro
-- 
-- IMPORTANTE: Sostituisci 'database_origine' e 'database_destinazione' con i nomi reali
-- 
-- Esempio di uso:
-- mysql -u root -p < sync_strOspiti.sql
-- 
-- Oppure modifica manualmente i nomi dei database qui sotto ed esegui

-- ============================================================================
-- METODO 1: Copia solo i record NUOVI (che non esistono nella destinazione)
-- Basato su NOME e COGNOME (non su ID)
-- ============================================================================

INSERT INTO database_destinazione.tbl_strOspiti 
(ospiteId, curatoreId, referenteId, casaEditriceId, stato, 
nome, cognome, accompagnatoreNome, accompagnatoreCognome, 
tipoOspite, straniero, richiestoInterprete, richiestoAngelo, 
telefono, cellulare, telefonoAssistente, notaTelefono, 
email, emailAssistente, notaEmail, tipoPagamento, compenso, 
anniPartecipazione, modalitaPagamento, createUserId, createTime, 
updateUserId, updateTime, soggettoIva, luogoNascita, dataNascita, 
resIndir, resCitta, resCap, resProv, resStato, codiceFiscale, 
partitaIva, banca, iban, compensoConcordato, tipoCompenso, 
aliquotaIva, aliquotaRitenuta, dich5000, luogoArrivo, luogoPartenza)
SELECT 
s.ospiteId, s.curatoreId, s.referenteId, s.casaEditriceId, s.stato, 
s.nome, s.cognome, s.accompagnatoreNome, s.accompagnatoreCognome, 
s.tipoOspite, s.straniero, s.richiestoInterprete, s.richiestoAngelo, 
s.telefono, s.cellulare, s.telefonoAssistente, s.notaTelefono, 
s.email, s.emailAssistente, s.notaEmail, s.tipoPagamento, s.compenso, 
s.anniPartecipazione, s.modalitaPagamento, s.createUserId, s.createTime, 
s.updateUserId, s.updateTime, s.soggettoIva, s.luogoNascita, s.dataNascita, 
s.resIndir, s.resCitta, s.resCap, s.resProv, s.resStato, s.codiceFiscale, 
s.partitaIva, s.banca, s.iban, s.compensoConcordato, s.tipoCompenso, 
s.aliquotaIva, s.aliquotaRitenuta, s.dich5000, s.luogoArrivo, s.luogoPartenza
FROM database_origine.tbl_strOspiti s
LEFT JOIN database_destinazione.tbl_strOspiti d 
    ON s.cognome = d.cognome AND s.nome = d.nome
WHERE d.id IS NULL;

-- ============================================================================
-- METODO 2: Copia e AGGIORNA (REPLACE INTO)
-- Usa questo se vuoi anche aggiornare i record esistenti
-- Basato su NOME e COGNOME
-- ATTENZIONE: Questo metodo elimina e reinserisce i record esistenti
-- ============================================================================

/*
REPLACE INTO database_destinazione.tbl_strOspiti 
(nome, cognome, ospiteId, curatoreId, referenteId, casaEditriceId, stato, 
accompagnatoreNome, accompagnatoreCognome, 
tipoOspite, straniero, richiestoInterprete, richiestoAngelo, 
telefono, cellulare, telefonoAssistente, notaTelefono, 
email, emailAssistente, notaEmail, tipoPagamento, compenso, 
anniPartecipazione, modalitaPagamento, createUserId, createTime, 
updateUserId, updateTime, soggettoIva, luogoNascita, dataNascita, 
resIndir, resCitta, resCap, resProv, resStato, codiceFiscale, 
partitaIva, banca, iban, compensoConcordato, tipoCompenso, 
aliquotaIva, aliquotaRitenuta, dich5000, luogoArrivo, luogoPartenza)
SELECT 
nome, cognome, ospiteId, curatoreId, referenteId, casaEditriceId, stato, 
accompagnatoreNome, accompagnatoreCognome, 
tipoOspite, straniero, richiestoInterprete, richiestoAngelo, 
telefono, cellulare, telefonoAssistente, notaTelefono, 
email, emailAssistente, notaEmail, tipoPagamento, compenso, 
anniPartecipazione, modalitaPagamento, createUserId, createTime, 
updateUserId, updateTime, soggettoIva, luogoNascita, dataNascita, 
resIndir, resCitta, resCap, resProv, resStato, codiceFiscale, 
partitaIva, banca, iban, compensoConcordato, tipoCompenso, 
aliquotaIva, aliquotaRitenuta, dich5000, luogoArrivo, luogoPartenza
FROM database_origine.tbl_strOspiti;
*/

-- ============================================================================
-- QUERY DI VERIFICA
-- ============================================================================

-- Conta i record in origine
-- SELECT COUNT(*) as 'Record in origine' FROM database_origine.tbl_strOspiti;

-- Conta i record in destinazione
-- SELECT COUNT(*) as 'Record in destinazione' FROM database_destinazione.tbl_strOspiti;

-- Trova i record presenti in origine ma NON in destinazione (basato su nome e cognome)
-- SELECT COUNT(*) as 'Record mancanti in destinazione'
-- FROM database_origine.tbl_strOspiti s
-- LEFT JOIN database_destinazione.tbl_strOspiti d 
--     ON s.cognome = d.cognome AND s.nome = d.nome
-- WHERE d.id IS NULL;

-- Mostra i nomi degli ospiti mancanti
-- SELECT s.cognome, s.nome, s.email
-- FROM database_origine.tbl_strOspiti s
-- LEFT JOIN database_destinazione.tbl_strOspiti d 
--     ON s.cognome = d.cognome AND s.nome = d.nome
-- WHERE d.id IS NULL
-- ORDER BY s.cognome, s.nome;

