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; } }
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; } } } }