[acao-it] R: Logica per determinare iscrizioni in corso

francois.robert at libero.it francois.robert at libero.it
Mon Feb 8 00:39:06 CET 2016


Le iscrizioni sono riconducibili ai pagament registrati nel software di contabilità (Onda).

Teoricamente
 esiste un indicazione simile in Aliandre ma non é affidabile per il 
seguente motivo: Tra il 1 Nov anno N e il 1 Febbraio anno N+1 il 
terminale delle schede non consente ad un neo iscritto per l'anno N+1 di
 fare sheda perché non risulta iscritto nel anno N. Di conseguenza in 
Aliandre vengono inserite iscrizione fasule pe l'anno N a fine di 
consentire a tal neo iscritto di fare schede. Queste iscrizione fasule 
non sono mai state pagate e in Onda non esistono. Ritengo quindi più 
affiadbile chiedere ad Onda.

Ho scritto una query per il database
 di Onda che ha come scopo di identificare a chi é stato emessa una 
ricevuta fiscale per l'iscrizione l'anno N+1 ma non per l'anno N (cioé 
nuovi soci) oppure il contrario (soci "in ritardo"). Ignora la 
possibilità (rara) che uno abbia pagato la sua iscrizione via una nota 
di accredito invece che via una effettivo pagamento (per la quale esiste
 una ricevuta fiscale).

Credo che la miglior approssimazione di 
quello che cerchi é il primo caso (che tra altro serve anche al CSVVA 
per aggiornare li abbonamenti alla rivista "Volo a Vela"). 

Il 
secondo caso sarebbe un approssimazione di chi va de-iscritto dalle 
mailing list, anche se il criterio che determina chi veramente non é più
 socio non puo essere che euristico e statistico (cioé distinguere tra 
"soci in ritardo" e "ex soci" vuol dire aspettare che non si 
re-iscriva). 
Il passaggio 
da una categoria a l'altra non é gestito direttamente. Nel caso commune del passagio da allievi a 
socio ordinario, esistono in Aliandre informazione più aggiornate come 
la data di rilascio della licenza che questa query non contempla. Credo che dalla query sotto si possa scrivere una variante che identifica i soci che si sono re-iscritti con una causale diversa (da trainatore a non, da allievo a socio ordinario, da under 23 a ordinario etc...)

Caveat:
Li indirizzi mail si trovano solo in Aliandre (acao_pro.soci_dati_generale.email). Si puo risalire ad essa da Onda via un JOIN tra acao_pro.soci_dati_generale.codice_socio_dati_generale e acao.STDAnagraficaClienti.rifInterno. 
Non
 mi pare che l'appartanenza al secondo periodo obbedisca ad un criterio 
ben definito. (Fino al C d'Argento ? Al 300 km ? a X ore di volo ? o 
qualcos'altro ?). FYI,  esistono in Aliandre dei campi per le insegne 
conseguite dal socio ma non so se vengono aggiornate.

François

La query che ho scritto (per il parametri $P{anno}) :

USE acao;

SELECT cli.rifInterno AS codice, ana.RagioneSociale AS socio,
isc.data, isc.tipo, iscP.data AS data_precedente, iscP.tipo AS tipo_precedente
FROM
( SELECT  fatt.idAnagrafica AS id, fatt.DataDocumento AS data, r.CodArt AS tipo
   FROM ATTDocTeste AS fatt
   INNER JOIN ATTDocRighe r
     ON fatt.IdDoc = r.IdDoc
     AND r.CodArt in ('0001S', '0003S', '0004S', '0007S', '00G1S')
   WHERE -- associazione anno dal 1 Nov
    fatt.DataDocumento >= DATEADD(year, $P{anno}-1-1900, DATEADD(month, 11-1, 0))
    AND fatt.DataDocumento < DATEADD(year, $P{anno}-1900, DATEADD(month, 11-1, 0))
    AND fatt.tipoDocumento = 6   -- 6=ricevuta fiscale
) AS isc
FULL OUTER JOIN
( SELECT  fatt.idAnagrafica AS id, fatt.DataDocumento AS data, r.CodArt AS tipo
   FROM ATTDocTeste AS fatt
   INNER JOIN ATTDocRighe r
     ON fatt.IdDoc = r.IdDoc
     AND r.CodArt in ('0001S', '0003S', '0004S', '0007S', '00G1S') -- socio, trainatori/FI, allievo, aggregato, <23
   WHERE -- associazione anno precedente dal 1 Nov
    fatt.DataDocumento >= DATEADD(year, $P{anno}-2-1900, DATEADD(month, 11-1, 0))
    AND fatt.DataDocumento < DATEADD(year, $P{anno}-1-1900, DATEADD(month, 11-1, 0))
    AND fatt.tipoDocumento = 6   -- 6=ricevuta fiscale
) AS iscP ON iscP.id = isc.id
INNER JOIN STDAnagraficaClienti AS cli ON (isc.id = cli.idAnagrafica OR iscP.id = cli.idAnagrafica)
INNER JOIN STDAnagrafiche AS ana ON (isc.id = ana.idAnagrafica OR iscP.id = ana.idAnagrafica)
WHERE iscP.id IS NULL OR isc.id IS NULL
ORDER BY isc.tipo, iscP.tipo, ana.RagioneSociale





>----Messaggio originale----
>Da: Daniele Orlandi <daniele at orlandi.com>
>Data: 07/02/2016 16.11
>A: <it at lists.acao.it>
>Ogg: [acao-it] Logica per determinare iscrizioni in corso
>
>
>Roberto, François,
>
>Vorrei ripristinare gli script che allineano le iscrizioni alle mailing
>list e ho bisogno di sapere qual è la logica per determinare giorno per
>giorno chi dev'essere iscritto alle liste:
>
>- Soci
>- Trainatori
>- Scuola
>- Secondo Periodo
>
>In funzione del contenuto del database.
>
>Non mi serve banalmente sapere chi ha un'iscrizione valida perché, per
>esempio, non è accettabile cancellare tutte le iscrizioni alla mailing
>list il primo gennaio.
>
>Mi date una mano a dererminare le suddette policy?
>
>Grazie,
>Ciao,
>_______________________________________________
>It mailing list
>It at lists.acao.it
>https://lists.acao.it/listinfo/it
>




>----Messaggio originale----
>Da: Daniele Orlandi <daniele at orlandi.com>
>Data: 07/02/2016 16.11
>A: <it at lists.acao.it>
>Ogg: [acao-it] Logica per determinare iscrizioni in corso
>
>
>Roberto, François,
>
>Vorrei ripristinare gli script che allineano le iscrizioni alle mailing
>list e ho bisogno di sapere qual è la logica per determinare giorno per
>giorno chi dev'essere iscritto alle liste:
>
>- Soci
>- Trainatori
>- Scuola
>- Secondo Periodo
>
>In funzione del contenuto del database.
>
>Non mi serve banalmente sapere chi ha un'iscrizione valida perché, per
>esempio, non è accettabile cancellare tutte le iscrizioni alla mailing
>list il primo gennaio.
>
>Mi date una mano a dererminare le suddette policy?
>
>Grazie,
>Ciao,
>_______________________________________________
>It mailing list
>It at lists.acao.it
>https://lists.acao.it/listinfo/it
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.acao.it/pipermail/it/attachments/20160208/53f64c37/attachment.html>


More information about the It mailing list