conn = $conn; $this->nometabelas = array(); $this->nometabelas = $tablenames; $this->relacionamentos = $relations; //die($this->odbc_conn); $this->tabelas = array(); foreach ($this->nometabelas as $nome){ $this->tabelas[$nome] = array(); } } //formata a data do pt_br para ingles function formataDataEn($dt=''){ if($dt == '') return ''; list($dia,$mes,$ano)=split("/", $dt,3); $retorno = "".$ano."-".$mes."-".$dia; return $retorno; } // formata a data do mysql pro formato brasileiro function formataDataPt($dt=''){ if($dt == '') return ''; list($ano,$mes,$dia)=split("-", $dt,3); $retorno = "".$dia."/".$mes."/".$ano; return $retorno; } function set($tabela, $campo, $val){ if($this->checkcampo($tabela, $campo)){ $this->tabelas[$tabela][$campo] = $val; return true; } else return false; } function checkcampo($tabela, $campo){ $this->query="SHOW COLUMNS FROM ".$tabela; $id = $this->execute($this->conn, $this->query); while ($linha = mysql_fetch_assoc($id)){ if($campo == $linha['Field']){ mysql_free_result($id); return true; } } mysql_free_result($id); return false; } function get($tabela, $campo){ if(isset($this->tabelas[$tabela][$campo])) return $this->tabelas[$tabela][$campo]; else return null; } function insert($tipo_func){ die("
  • Inserção Desabilitada"); } function update(){ die("
  • Update Desabilitado!"); } function delete($tabelas, $sql){ if($this->TestDelete()){ $this->query = "DELETE * FROM $tabelas WHERE $sql"; return $this->execute($this->conn, $this->query); } //die("
  • Deleção desabilitada!"); } function TestDelete(){ return true; } function cadastrar($cpf, $cod_horario, $dias){ unset($this->cmd); $this->cmd = array(); $ok = true; $this->reset(); $this->set("horarios", "cod_horario",$cod_horario); $this->consultar(); $horario_entrada = $this->get("horarios","horario_entrada"); $horario_saida = $this->get("horarios","horario_saida"); $today = getdate(); $data_alteracao = $today['year']."-".str_pad($today['mon'], 2, "0", STR_PAD_LEFT)."-".$today['mday']." ".str_pad($today['hours'], 2, "0", STR_PAD_LEFT).":".str_pad($today['minutes'], 2, "0", STR_PAD_LEFT).":".str_pad($today['seconds'], 2, "0", STR_PAD_LEFT); $this->reset(); $this->set("funcionarios_has_horarios", "cod_horario",$cod_horario); $this->set("funcionarios_has_horarios", "Cpf_Num",$cpf); $this->set("horarios", "horario_entrada",$horario_entrada); $this->set("horarios", "horario_saida",$horario_saida); while(list($dia,$io) = each($dias)){ //echo "$dia=>$io
    "; if($io){ $this->set("funcionarios_has_horarios", "dia", $dia); if($ok=$this->TestInsert()) $this->addcmd("INSERT INTO funcionarios_has_horarios VALUES('$cpf', $cod_horario,'$dia', '$data_alteracao')"); else break; } else{ $this->addcmd("DELETE FROM funcionarios_has_horarios WHERE Cpf_Num = '$cpf' AND cod_horario = $cod_horario AND dia = '$dia'"); } } if(!$ok){ return false; } else{ $this->addcmd("UPDATE funcionarios SET data_alteracao = '$data_alteracao' WHERE Cpf_Num = '$cpf'"); if($this->executeTrans()) return true; else return false; } return false; } function TestInsert(){ if($this->count("funcionarios_has_horarios", " cod_horario = ".$this->tabelas['funcionarios_has_horarios']['cod_horario']." AND Cpf_Num = '".$this->tabelas['funcionarios_has_horarios']['Cpf_Num']."' AND dia = '".$this->tabelas['funcionarios_has_horarios']['dia']."'")){ echo ""; return false; } if($this->count("funcionarios_has_horarios, horarios", " funcionarios_has_horarios.Cpf_Num = '".$this->tabelas['funcionarios_has_horarios']['Cpf_Num']."' AND funcionarios_has_horarios.dia = '".$this->tabelas['funcionarios_has_horarios']['dia']."' AND funcionarios_has_horarios.cod_horario = horarios.cod_horario AND ( (( (TIMEDIFF(horarios.horario_entrada,'".$this->tabelas['horarios']['horario_entrada']."')) <= TIME(0) AND (TIMEDIFF('".$this->tabelas['horarios']['horario_entrada']."',horarios.horario_saida)) < TIME(0) ) OR ( (TIMEDIFF(horarios.horario_entrada,'".$this->tabelas['horarios']['horario_saida']."')) < TIME(0) AND (TIMEDIFF('".$this->tabelas['horarios']['horario_saida']."',horarios.horario_saida)) <= TIME(0) )) OR (( (TIMEDIFF(horarios.horario_entrada,'".$this->tabelas['horarios']['horario_entrada']."')) > TIME(0) AND (TIMEDIFF('".$this->tabelas['horarios']['horario_saida']."',horarios.horario_saida)) > TIME(0))) )")) { echo ""; return false; }//die(); return true; } function TestUpdate(){ return true; } function reset(){ unset($this->tabelas); // EXECUTAR ESSE CÓDIGO PARA CADA TABELA /*if(sizeof($this->tabela)){ foreach($this->tabela as $campo => $valor){ unset($this->tabela[$campo]); } }*/ } function listar($campos = "*", $usatabelas = null, $orderby = null){ $this->query = ""; $first = true; $usada = array(); foreach($this->nometabelas as $index => $nome){ $usada[$nome] = false; } $usada[$this->nometabelas[0]] = true; if($usatabelas != null) foreach ($usatabelas as $indtab => $nometab) $usada[$nometab] = true; //while(list($key,$val) = each($this->tabelas)) // echo "\n$key=>$val"; //die("querie".$this->query); $tables = array(); foreach ($usada as $nometab => $val){ if($usada[$nometab]) $tables[sizeof($tables)] = $nometab; } if(isset($this->tabelas)){ foreach ($this->tabelas as $nome => $tabela) { foreach ($tabela as $campo => $valor){ if(!is_null($this->tabelas[$nome][$campo])){ if(!empty($this->tabelas[$nome][$campo])){ if($nome != $this->nometabelas[0]){ if(!$usada[$nome]){ $usada[$nome] = true; $tables[sizeof($tables)] = $nome; } } if($first){ $first = false; $this->query .= " WHERE $nome.$campo = '".$valor."'"; } else $this->query .= " AND $nome.$campo = '".$valor."'"; } } } } } for ($i=0; $inometabelas);$i++){ for ($j=$i+1; $jnometabelas);$j++){ if($usada[$this->nometabelas[$i]] && $usada[$this->nometabelas[$j]] && isset($this->relacionamentos[$this->nometabelas[$i]][$this->nometabelas[$j]])){ //era != null $this->query .= " AND ".$this->nometabelas[$i].".".$this->relacionamentos[$this->nometabelas[$i]][$this->nometabelas[$j]]." = ".$this->nometabelas[$j].".".$this->relacionamentos[$this->nometabelas[$i]][$this->nometabelas[$j]]; } } } if(!is_null($orderby)) $this->query .= " ORDER BY ".$orderby; //echo sizeof($tables).";;"; return $this->vt_recordset($campos, $tables, $this->query); } function consultar() { $this->query = ""; $first = true; $usada = array(); foreach($this->nometabelas as $index => $nome){ $usada[$nome] = false; } //while(list($key,$val) = each($table)) // echo "\n$key=>$val"; //die("querie".$this->query); $tables = array(); $tables[0] = $this->nometabelas[0]; $usada[$this->nometabelas[0]] = true; if(sizeof($this->tabelas)){ foreach ($this->tabelas as $nome => $tabela) { foreach ($tabela as $campo => $valor){ if(!is_null($this->tabelas[$nome][$campo])){ if(!empty($this->tabelas[$nome][$campo])){ if($nome != $this->nometabelas[0]){ if(!$usada[$nome]){ $usada[$nome] = true; $tables[sizeof($tables)] = $nome; } } if($first){ $first = false; $this->query .= " WHERE $nome.$campo = '".$valor."'"; } else $this->query .= " AND $nome.$campo = '".$valor."'"; } } } } } for ($i=0; $inometabelas);$i++){ for ($j=$i+1; $jnometabelas);$j++){ if($usada[$this->nometabelas[$i]] && $usada[$this->nometabelas[$j]]){ $this->query .= " AND ".$this->nometabelas[$i].".".$this->relacionamentos[$this->nometabelas[$i]][$this->nometabelas[$j]]." = ".$this->nometabelas[$j].".".$this->relacionamentos[$this->nometabelas[$i]][$this->nometabelas[$j]]; } } } $qry = $this->query; $this->query = "SELECT * FROM "; for($i=0; $i< sizeof($tables); $i++){ $this->query .= $tables[$i]; if($i < sizeof($tables)-1) $this->query .= ","; } $this->query .= $qry; //die($this->query); $rs = $this->execute($showerror=true, $debug=true); $row_rs = mysql_fetch_assoc($rs); $total_linhas = mysql_num_rows($rs); if ($total_linhas>0){ foreach ($row_rs as $campo => $valor) $this->tabelas[$this->nometabelas[0]][$campo] = $valor; $bl_aux = true; }else $bl_aux = false; mysql_free_result($rs); return $bl_aux; //die("
  • função de consulta desabilitada."); } function show($tabela, $campo){ if(isset($this->tabelas[$tabela][$campo])) return true; else return false; } } ?>