예제 #1
0
 function leggiFormazioni($mFrom, $aFrom, $mTo, $aTo)
 {
     $model = new FormazioniModelFormazioni();
     $modelData = new DataModelData();
     $suff_db = $model->getSuffissoDB();
     $tabella = "#__formazioni_" . $suff_db;
     //if($mFrom<=9){$mFrom = "0".$mFrom;}
     //if($mTo<=9){$mTo = "0".$mTo;}
     $gTo = $modelData->days_in_month($mTo, $aTo);
     $giorni_settimana = $modelData->getInfo('GiorniSettimana');
     $db = JFactory::getDBO();
     $query = $db->getQuery(true);
     $query = "SELECT * FROM `{$tabella}` WHERE  DATA >= '{$aFrom}-{$mFrom}-1' AND DATA <= '{$aTo}-{$mTo}-{$gTo}' ORDER BY DATA ";
     $db->setQuery($query);
     $db->query();
     $rows = $db->loadObjectList();
     //array di mesi intercorrenti tra $mFrom e $mTo (1,mese,0,  1,mese,0  ecc..):
     $a_Tmp = $aFrom;
     $m_Tmp = $mFrom;
     $data_fine = "{$mTo}-{$aTo}";
     for ($i = 0; strcasecmp("{$m_Tmp}-{$a_Tmp}", $data_fine) != '0'; $i++) {
         $array_formazioni[$i] = 1;
         $i++;
         $array_formazioni[$i] = $modelData->meseFromNumToText($m_Tmp);
         $array_formazioni[$i] .= " {$a_Tmp}";
         $i++;
         $array_formazioni[$i] = 0;
         $m_Tmp++;
         if ($m_Tmp == 13) {
             $m_Tmp = 1;
             $a_Tmp++;
         }
         // mese restante - da fare prima che si chiuda il ciclo for
         if (strcasecmp("{$m_Tmp}-{$a_Tmp}", $data_fine) == '0') {
             $i++;
             $array_formazioni[$i] = 1;
             $i++;
             $array_formazioni[$i] = $modelData->meseFromNumToText($m_Tmp);
             $array_formazioni[$i] .= " {$a_Tmp}";
             $i++;
             $array_formazioni[$i] = 0;
         }
     }
     if ($rows == NULL) {
         //NESSUNA FORMAZIONE TROVATA,
         $formazioni[0] = $array_formazioni;
         $formazioni[1] = $array_formazioni;
         $formazioni[2] = $array_formazioni;
         return $formazioni;
     } else {
         $i = 0;
         foreach ($rows as $row) {
             $date_formazioni_db[$i] = $row->Data;
             $note_formazioni_db[$i] = $row->Note;
             $presenze_formazioni_db[$i] = $row->Presenze;
             $i++;
         }
         $m = 0;
         $t = 0;
         for ($n = 0; $n < count($array_formazioni); $n++) {
             $date_formazioni[$t] = $array_formazioni[$n];
             $note_formazioni[$t] = $array_formazioni[$n];
             $presenze_formazioni[$t] = $array_formazioni[$n];
             $t++;
             if (isset($date_formazioni_db[$m])) {
                 $data = explode('-', $date_formazioni_db[$m]);
                 $mese = $data[1];
                 $mese = $modelData->meseFromNumToText($mese);
                 $anno = $data[0];
                 while (strcasecmp("{$mese} {$anno}", $array_formazioni[$n]) == 0) {
                     $date_formazioni[$t] = $date_formazioni_db[$m];
                     $note_formazioni[$t] = $note_formazioni_db[$m];
                     $presenze_formazioni[$t] = $presenze_formazioni_db[$m];
                     $m++;
                     $data = explode('-', $date_formazioni_db[$m]);
                     $mese = $data[1];
                     $mese = $modelData->meseFromNumToText($mese);
                     $anno = $data[0];
                     $t++;
                 }
             }
         }
         //formatta le date per le select:
         $index = 0;
         for ($i = 0; $i < count($date_formazioni); $i++) {
             if ($date_formazioni[$i] != '0' && $date_formazioni[$i] != '1' && $date_formazioni[$i - 1] != '1') {
                 $data = explode('-', $date_formazioni[$i]);
                 if ($data[2] <= 9) {
                     $data[2] = substr($data[2], 1);
                 }
                 if ($data[1] <= 9) {
                     $data[1] = substr($data[1], 1);
                 }
                 $date_formazioni_formattate[$index] = $data[2] . " " . $modelData->meseFromNumToText($data[1]);
                 $index++;
             }
         }
         $formazioni[0] = $date_formazioni;
         $formazioni[1] = $note_formazioni;
         $formazioni[2] = $presenze_formazioni;
         $formazioni[3] = $date_formazioni_formattate;
         return $formazioni;
     }
 }
예제 #2
0
 function rimClown($nome, $giorno, $mese, $anno)
 {
     $nome = trim($nome);
     //Elimina gli spazi vuoti da inizio e fine
     $nome = str_replace(' ', '_', $nome);
     //Sostituisce gli spazi in mezzo con '_'
     $model = new TurniServiziModelTurniServizi();
     $modelData = new DataModelData();
     $suff_db = $model->getSuffissoDB();
     $tabella = "#__servizi_" . $suff_db;
     $db = JFactory::getDBO();
     $query = $db->getQuery(true);
     //Se il mese (e il giorno) è minore di 9 aggiungi uno zero
     if ($giorno <= 9 && strlen($giorno) < 2) {
         $giorno = "0" . $giorno;
     }
     if ($mese <= 9 && strlen($mese) < 2) {
         $mese = "0" . $mese;
     }
     //Recupera i nomi dei clown presenti in servizio
     $query = "SELECT * FROM `{$tabella}` WHERE YEAR(Data) = {$anno} AND MONTH(Data) = {$mese} AND DAY(Data) = {$giorno} ";
     $db->setQuery($query);
     $db->query();
     $rows = $db->loadObjectList();
     //Richiama la mail per poter inviare una notifica allo staff e prepara il contenuto
     $mail_staff = $model->getMailStaff();
     $mail_bcc = $model->getMailBcc();
     //recupera la mail del clown:
     $elenco = $this->leggiElencoClowns();
     $nomiClown = $elenco['nomiClowns'];
     $elenco_mail = $elenco['mail'];
     for ($i = 0; $i < count($nomiClown); $i++) {
         if (strcasecmp($nome, $nomiClown[$i]) == '0') {
             $mail_clown = $elenco_mail[$i];
         }
     }
     // Headers, subject e message staff
     $headers_staff .= "From: Gestione Servizi Online <*****@*****.**>\r\n";
     $headers_staff .= "Reply-To: " . $mail_clown . "\r\n";
     $headers_staff .= "Bcc: " . $mail_bcc . "\r\n";
     $subject_staff = "Conferma cancellazione clown " . $nome . "dal servizio";
     $message_staff = "Ciao staff Ospedale!\n\n" . $nome . " e' stato rimosso/a dal servizio del giorno " . $giorno . " " . $modelData->meseFromNumToText($mese) . ".\n\n";
     $message_staff .= "Un messaggio di notifica e' gia' stato inviato al suo indirizzo " . $mail_clown . " al quale potete scrivere rispondendo a questa mail. \n\n";
     $message_staff .= "Grazie, \nil servizio online di gestione turni automatico di Split.\n\n";
     // Headers, subject e message clow
     $headers_clown .= "From: Gestione Servizi Online <*****@*****.**>\r\n";
     $headers_clown .= "Reply-To: " . $mail_staff . "\r\n";
     $subject_clown = "Il tuo nome e' stato rimosso da un servizio";
     $message_clown = "Ciao " . $nome . ",  il tuo nome e' stato cancellato dal servizio del giorno " . $giorno . " " . $modelData->meseFromNumToText($mese) . ".\n\n";
     $message_clown .= "Per comunicare con lo staff ospedale puoi scrivere all'indirizzo " . $mail_staff . " oppure rispondere a quesa mail. \n\n";
     $message_clown .= "Grazie, \nil servizio online di gestione turni automatico di Split.\n\n";
     if ($rows == NULL) {
         return 1;
         //se non c'è il mese nel db
     } else {
         foreach ($rows as $row) {
             $nomi = $row->Nomi;
             $etichetta = $row->Etichetta;
         }
         if ($nomi == '-') {
             return 1;
             //Il servizio anche se ha un etichetta è vuoto.
         } else {
             //Converti il campo in array di stringhe
             $nomiVecchi = explode(' ', $nomi);
             //verifica che il nome sia nel db
             $check = 0;
             for ($i = 0; $i < count($nomiVecchi); $i++) {
                 if ($nomiVecchi[$i] == $nome) {
                     //Il clown è nel servizio. continua oltre.
                     $check = 1;
                     $i = count($nomiVecchi) + 1;
                 }
             }
             if ($check == 0) {
                 return 1;
             } else {
                 //elimino nome dall'array
                 //se c'è un solo nome elimina la riga nel db ma solo se non ci sono etichette
                 if ($nomiVecchi[1] == NULL && $etichetta == NULL) {
                     //un solo nome e nessuna etichetta
                     $query = "DELETE FROM `{$tabella}` WHERE Nomi='{$nomi}' AND YEAR(Data) = {$anno} AND MONTH(Data) = {$mese} AND DAY(Data) = {$giorno} ";
                     $db->setQuery($query);
                     $db->query();
                     mail($mail_staff, $subject_staff, $message_staff, $headers_staff);
                     //Mail allo staff
                     mail($mail_clown, $subject_clown, $message_clown, $headers_clown);
                     //Mail al clown
                     return 0;
                 } else {
                     if ($nomiVecchi[1] == NULL && $etichetta != NULL) {
                         //se c'è un solo nome e nessuna etichetta
                         $query = "UPDATE `{$tabella}` SET Nomi='-' WHERE YEAR(Data) = {$anno} AND MONTH(Data) = {$mese} AND DAY(Data) = {$giorno} ";
                         $db->setQuery($query);
                         $db->query() == 1;
                         mail($mail_staff, $subject_staff, $message_staff, $headers_staff);
                         //Mail allo staff
                         mail($mail_clown, $subject_clown, $message_clown, $headers_clown);
                         //Mail al clown
                         return 0;
                     } else {
                         for ($i = 0; $nomiVecchi[$i] != NULL; $i++) {
                             if ($nomiVecchi[$i] == $nome) {
                                 while ($nomiVecchi[$i] != NULL) {
                                     $nomiVecchi[$i] = $nomiVecchi[$i + 1];
                                     $i++;
                                 }
                             }
                         }
                     }
                 }
                 // Ricostruisci stringa unica per il db
                 for ($n = 1; $nomiVecchi[$n] != NULL; $n++) {
                     $nomiVecchi[0] = $nomiVecchi[0] . " " . $nomiVecchi[$n];
                 }
                 $nomiNuovi = $nomiVecchi[0];
                 //Modifica nomi in campo
                 $query = "UPDATE `{$tabella}` SET Nomi=\"{$nomiNuovi}\" WHERE YEAR(Data) = {$anno} AND MONTH(Data) = {$mese} AND DAY(Data) = {$giorno} ";
                 $db->setQuery($query);
                 $db->query();
                 mail($mail_staff, $subject_staff, $message_staff, $headers_staff);
                 //Mail allo staff
                 mail($mail_clown, $subject_clown, $message_clown, $headers_clown);
                 //Mail al clown
                 return 0;
             }
         }
     }
 }