← Back
Editing: tableau_old.pjp
<?php ###___###___###___###___###___###___###___###___###___###___###___###___### ### SmaDIB: Smart Database Interface Builder 0.6.0.1 ### ### by Smartmedia 2000 http://www.smartmedia2000.it/ ### ### info email: smadib@smartmedia2000.it ### ### released under GPLv2 license http://www.gnu.org/licenses/gpl.txt ### ###___###___###___###___###___###___###___###___###___###___###___###___### require_once ("../funct.php"); require_once ("sess.php"); require_once ("conn.php"); $ptitolo = "Tableau"; require_once ("testacoda.php"); $query = new doQuery(); /* $sql = "select `id`, DATE_FORMAT(`data_operaz`, '%Y-%m-%d') AS `data` FROM `contratti` WHERE `id_utente`='12' AND `stato`='1'"; $rows2 = $query->freeQuery ($sql, 4, $conn); foreach ($rows2 AS $k=>$row) { list ($a, $m, $g) = explode ('-', $row->data); $data = date ("Y-m-d", mktime(0,0,0,$m,$g,$a)+(3600*24*15) ); $query->freeQuery ("update contratti set data_scad='$data' where id=".$row->id, 0, $conn); } */ $id_sistemaz = $_REQUEST['id_sistemaz']; $nome_sist = $_REQUEST['nome_sist']; $colSovrap = "#cc0000"; $coloriSt = array (1=>'ffee99', 3=>'ff9999', 5=>'ff3333', 7=>'ff0000'); $coloriPer = array ('#000000', '#feffbc', '#feffbc', '#cdffcb', '#d6fdff', '#e2e2dc', '#eed485', '#ffedb8', '#ffecfd', '#bbdccf', '#84dbfb', '#e9c2ff', '#feffbc', '#cdffcb', '#ff6666', '#66ff66', '#00ffff', '#ff66ff'); $mesi = array ('', 'gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic', 'gen'); $gMesi = array(1=>31, 2=>28, 3=>31, 4=>30, 5=>31, 6=>30, 7=>31, 8=>31, 9=>30, 10=>31, 11=>30, 12=>31); $giorni = array ('Sun'=>'dom', 'Mon'=>'lun', 'Tue'=>'mar', 'Wed'=>'mer', 'Thu'=>'gio', 'Fri'=>'ven', 'Sat'=>'sab'); $fumo = array ('ind', 'nf', 'f'); $letti = array ('', '1m+2s', '2mat', '1m+1s+1c'); if ($op == "ds") { $sql = "UPDATE `contratti` SET `id_sistemaz`='$id_sistemaz' WHERE `id`=$idC LIMIT 1"; $query->freeQuery ($sql, 0, $conn); } if ($az == "ed") { # nuovo inserimento $sql = "SELECT `contratti`.`data_in`, `contratti`.`data_out` AS `data_fi`, `cognome`, `nome` FROM `contratti`, `persone`, `presenze` WHERE `contratti`.`id_utente`=$id_utente AND `contratti`.`id`=`presenze`.`id_contratto` AND `persone`.`id`=`presenze`.`id_persona` AND `contratti`.`id`=$idC LIMIT 1"; } else { # tutto il periodo $sql = "SELECT MIN(`data_in`) AS `data_in`, MAX(`data_fi`) AS `data_fi` FROM `periodi` WHERE `id_utente`=$id_utente"; } # date per inizio e fine del tableau $row = $query->freeQuery ($sql, 0, $conn); list ($aIn, $mIn, $gIn) = explode ('-', $row[0]->data_in); list ($aFi, $mFi, $gFi) = explode ('-', $row[0]->data_fi); if ($az == "ed") { $data_in = date ("Y-m-d", mktime(0,0,0,$mIn,$gIn,$aIn)-(3600*24*7) ); $data_in0 = mktime(0,0,0,$mIn,$gIn,$aIn); $data_fi = date ("Y-m-d", mktime(0,0,0,$mFi,$gFi,$aFi)+(3600*24*7) ); $data_fi0 = mktime(0,0,0,$mFi,$gFi,$aFi)-(3600*24); list ($aIn, $mIn, $gIn) = explode ('-', $data_in); list ($aFi, $mFi, $gFi) = explode ('-', $data_fi); $sottoTit = $row[0]->cognome." ".$row[0]->nome." da ".date2data ($row[0]->data_in)." a ".date2data ($row[0]->data_fi)." sistemazione <input type=\"text\" name=\"nome_sist\" size=\"6\" value=\"$nome_sist\" /> <input type=\"submit\" name=\"invio\" value=\"Inserisci\" /> $backPres <input type=\"hidden\" name=\"id_sistemaz\" value=\"$id_sistemaz\" /> <input type=\"hidden\" name=\"az\" value=\"ed\" /> <input type=\"hidden\" name=\"op\" value=\"ds\" /> <input type=\"hidden\" name=\"st\" value=\"$st\" /> <input type=\"hidden\" name=\"tp\" value=\"$tp\" /> <input type=\"hidden\" name=\"idC\" value=\"$idC\" />\n"; } # prima riga mesi for ($i=$mIn+0; $i<=$mFi; $i++) { $bgcol = rowCol ($i); $colsp = ($i > $mIn && $i < $mFi) ? $gMesi[$i] : ($i == $mIn ? $gMesi[$i]-$gIn+1 : $gFi); $cal.= "<td colspan=\"$colsp\" align=\"center\" bgcolor=\"$bgcol\">".$mesi[$i]."</td>"; $totGg+= $colsp; } $cal.= "</tr>\n<tr>"; # seconda riga giorni colorati nei periodi $datainAr = array (); $datafiAr = array (); $coloriAr = array (); $sqlCol = "SELECT DISTINCT `periodo`, `data_in`, `data_fi` FROM `periodi`, `listini` WHERE `periodi`.`id_utente` = $id_utente AND `listini`.`id_stagione`=`periodi`.`id_stagione` AND `listini`.`tipo`=$tp ORDER BY `data_in`"; $rowsCol = $query->freeQuery ($sqlCol, 0, $conn); foreach ($rowsCol AS $i=>$rowC) { list ($yy1, $mm1, $dd1) = explode ('-', $rowC->data_in); list ($yy2, $mm2, $dd2) = explode ('-', $rowC->data_fi); $datainAr[] = mktime (0,0,0,$mm1,$dd1,$yy1); $datafiAr[] = mktime (0,0,0,$mm2,$dd2,$yy2); $coloriPerAr[] = $coloriPer[$rowC->periodo]; } $t = mktime (0,0,0,$mIn,$gIn,$aIn); while ($t < mktime (0,0,0,$mFi,$gFi,$aFi)) { $bgcolor = ""; for ($g=0; $g<count($datainAr); $g++) if ($t >= $datainAr[$g] && $t <= $datafiAr[$g]) # colore di sfondo $bgcolor = $coloriPerAr[$g]." ".date ("d-m", $datainAr[$g])." ".date ("d-m", $datafiAr[$g]); $data = date ("d/n/Y", $t); list ($dd, $mm, $yy) = explode ('/', $data); $dd = (date ("N", $t) == 6) ? "<b>$dd</b>" : $dd; $cal.= "<td bgcolor=\"$bgcolor\">".$dd."</td>\n"; $t+= 3600*24; } $cal.= "</tr>\n"; $sqlS = "SELECT `id`, `nome`, `posti`, `tipo_letti`, `fumatori` FROM `sistemazioni` WHERE `id_utente`=$id_utente AND `tipo`=$tp ORDER BY `nome`"; $rowsS = $query->freeQuery ($sqlS, 0, $conn); foreach ($rowsS AS $i=>$rowS) { $numeroAr = array (); $datainAr = array (); $datafiAr = array (); $dataggAr = array (); # durate in giorni $coloriStAr = array (); $nomeAr = array (); $datiAr = array (); $sqlC = "SELECT `numero`, `contratti`.`data_in`, `contratti`.`data_out`, `cognome`, `nome`, `persone`, `adulti`, `bambini`, `neonati`, `cani`, `tipo_strutt`, `caratt_strutt`, `contratti`.`stato` FROM `contratti`, `persone`, `presenze` WHERE `id_sistemaz` = ".$rowS->id." AND `contratti`.`id_utente` = '$id_utente' $c2p AND `persone`.`tipo`=1 ORDER BY `data_in`"; $rowsC = $query->freeQuery ($sqlC, 0, $conn); foreach ($rowsC AS $k=>$rowC) { $dati = " "; list ($yy1, $mm1, $dd1) = explode ('-', $rowC->data_in); list ($yy2, $mm2, $dd2) = explode ('-', $rowC->data_out); $numeroAr[] = $rowC->numero; $datainAr[] = mktime (0,0,0,$mm1,$dd1,$yy1); $datafiAr[] = mktime (23,0,0,$mm2,$dd2-1,$yy2); $dataggAr[] = (mktime (0,0,0,$mm2,$dd2,$yy2)-mktime (0,0,0,$mm1,$dd1,$yy1))/(3600*24); $coloriStAr[] = $coloriSt[$rowC->stato]; $nomeAr[] = $rowC->cognome." ".$rowC->nome[0]; if ($rowC->persone && $tp==2) $dati.= $rowC->persone."p "; if ($rowC->adulti) $dati.= $rowC->adulti."a "; if ($rowC->bambini) $dati.= $rowC->bambini."b "; if ($rowC->neonati) $dati.= $rowC->neonati."n "; if ($rowC->cani) $dati.= $rowC->cani."c "; if ($tp == 2) { $dati.= $fumo[$rowC->tipo_strutt]; if ($rowC->caratt_strutt) $dati.= " 2mat"; } $datiAr[] = $dati; } $tableau.= "<tr><td></td><td colspan=\"$totGg\" bgcolor=\"#000033\" height=\"2\"></td></tr> <tr><td bgcolor=\"#EECCEE\"><b>".$rowS->nome."</b> ".$rowS->posti." ".$letti[$rowS->tipo_letti]." ".$fumo[$rowS->fumatori+1]."</td>\n"; $t = mktime (0,0,0,$mIn,$gIn,$aIn); while ($t < mktime (0,0,0,$mFi,$gFi,$aFi)) { $data = date ("d/n/Y", $t); list ($dd, $mm, $yy) = explode ('/', $data); for ($g=0; $g<count($datainAr); $g++) { if (($t < $datafiAr[$g] && $t >= $datafiAr[$g]-47*1800) || ($t >= $datainAr[$g] && $t < $datainAr[$g]+47*1800)) { $fl2++; $denomC = "<b>".$numeroAr[$g]."</b> ".$nomeAr[$g].$datiAr[$g]; } // if ($t < $dFi && $t >= $dIn) $fl2++; # cliccabili i giorni del periodo in modifica if ($t >= $datainAr[$g] && $t < $datafiAr[$g]) { $fl++; $bgcolor = $coloriStAr[$g]; $colsp = $dataggAr[$g]; } } //if ($fl > 1) //$bgcolor = $colSovrap; $dd2 = (date ("N", $t) == 6) ? "<b>$dd</b>" : $dd; $dN = $giorni [date ("D", $t)]; if ($fl2 && $fl == 1) {# primo giorno occupato $tableau.= "<td bgcolor=\"#$bgcolor\" colspan=\"$colsp\"><a href=\"#\" title=\"$datiC\">$denomC</a></td>\n"; $t+= 3600*24*$colsp; } else if ($fl) { # altri giorni occupati $tableau.= "<td bgcolor=\"$bgcolor\"></td>\n"; $t+= 3600*24; } else {# giorni liberi if ($az == "ed" && $t == $data_in0) $tableau.= "<td bgcolor=\"#CC99CC\"><a href=\"javascript:sistemaz('".$rowS->nome."', '".$rowS->id."')\" title=\"sistemaz. ".$rowS->nome."\">$dd2</a></td>\n"; else if ($az == "ed" && $t == $data_fi0) $tableau.= "<td bgcolor=\"#CC99CC\">$dd2</td>\n"; else $tableau.= "<td>$dd2</td>"; $t+= 3600*24; } $fl = 0; $fl2 = 0; $colsp = 1; $bgcolor = ""; } $tableau.= "</tr>\n"; } $tableau.= "<tr><td></td><td colspan=\"$totGg\" bgcolor=\"#000033\" height=\"2\"></td></tr>\n"; //<iframe src =\"html_intro.asp\" width=\"95%" height="300"></iframe> echo "$testa <script type=\"text/javascript\" language=\"javascript\"> function sistemaz (nome, num) { document.form1.nome_sist.value = nome; document.form1.id_sistemaz.value = num; } function cancDate() { document.form1.data_in.value = ''; document.form1.data_fi.value = ''; } function confDel2(id, stag) { if (confirm(\"Vuoi davvero cancellare la riga? Premi ok per confermare.\")) document.location='".$_SERVER['PHP_SELF']."?id='+ id +'&id_stagione='+ stag +'&az=canc'; } function changePer() { document.forms['form1'].periodo.value = ''; document.forms['form1'].op.value = ''; document.forms['form1'].submit(); } </script> <h2 align=\"center\">$ptitolo</h2> <form name=\"form1\" method=\"post\" action=\"".$_SERVER['PHP_SELF']."\"> $sottoTit <table align=\"center\"> <tr><td rowspan=\"2\"><img src=\"images/spa,gif\" width=\"120\" height=\"1\" /></td> $cal </tr> $tableau </table></form> $coda"; ?>
Save File
Cancel