SetTitulo( "{$this->_instituicao} i-Educar - Exemplar Devolução" );
$this->processoAp = "628";
$this->addEstilo('localizacaoSistema');
}
}
class indice extends clsCadastro
{
/**
* Referencia pega da session para o idpes do usuario atual
*
* @var int
*/
var $pessoa_logada;
var $cod_emprestimo;
var $ref_usuario_devolucao;
var $ref_usuario_cad;
var $ref_cod_cliente;
var $ref_cod_exemplar;
var $data_retirada;
var $data_devolucao;
var $valor_multa;
var $ref_cod_biblioteca;
var $dias_da_semana = array( 'Sun' => 1, 'Mon' => 2, 'Tue' => 3, 'Wed' => 4, 'Thu' => 5, 'Fri' => 6, 'Sat' => 7 );
function Inicializar()
{
$retorno = "Novo";
@session_start();
$this->pessoa_logada = $_SESSION['id_pessoa'];
@session_write_close();
$this->cod_emprestimo = $_GET["cod_emprestimo"];
$obj_permissoes = new clsPermissoes();
$obj_permissoes->permissao_cadastra( 628, $this->pessoa_logada, 11, "educar_exemplar_devolucao_lst.php" );
if( is_numeric( $this->cod_emprestimo ) )
{
$obj = new clsPmieducarExemplarEmprestimo( $this->cod_emprestimo );
$registro = $obj->detalhe();
if( $registro )
{
foreach( $registro AS $campo => $val ) // passa todos os valores obtidos no registro para atributos do objeto
$this->$campo = $val;
}
}
$this->url_cancelar = "educar_exemplar_devolucao_lst.php";
$this->nome_url_cancelar = "Cancelar";
$localizacao = new LocalizacaoSistema();
$localizacao->entradaCaminhos( array(
$_SERVER['SERVER_NAME']."/intranet" => "Início",
"educar_biblioteca_index.php" => "i-Educar - Biblioteca",
"" => "Realizar devolução"
));
$this->enviaLocalizacao($localizacao->montar());
return $retorno;
}
function Gerar()
{
// primary keys
$this->campoOculto( "cod_emprestimo", $this->cod_emprestimo );
$this->data_retirada = dataFromPgToBr($this->data_retirada, "Y-m-d");
$obj_exemplar = new clsPmieducarExemplar($this->ref_cod_exemplar);
$det_exemplar = $obj_exemplar->detalhe();
$cod_acervo = $det_exemplar["ref_cod_acervo"];
$obj_acervo = new clsPmieducarAcervo( $cod_acervo );
$det_acervo = $obj_acervo->detalhe();
// tipo de exemplar
$cod_exemplar_tipo = $det_acervo["ref_cod_exemplar_tipo"];
$titulo_obra = $det_acervo["titulo"];
$this->ref_cod_biblioteca = $det_acervo["ref_cod_biblioteca"];
$this->campoOculto( "ref_cod_biblioteca", $this->ref_cod_biblioteca );
$obj_biblioteca = new clsPmieducarBiblioteca($this->ref_cod_biblioteca);
$det_biblioteca = $obj_biblioteca->detalhe();
// valor da multa da biblioteca por dia
$valor_multa_biblioteca = $det_biblioteca["valor_multa"];
$obj_cliente_tipo_cliente = new clsPmieducarClienteTipoCliente();
$lst_cliente_tipo_cliente = $obj_cliente_tipo_cliente->lista(null,$this->ref_cod_cliente,null,null,null,null,null,null,$this->ref_cod_biblioteca );
if( is_array( $lst_cliente_tipo_cliente ) && count( $lst_cliente_tipo_cliente ) )
{
$det_cliente_tipo_cliente = array_shift($lst_cliente_tipo_cliente);
// tipo do cliente
$cod_cliente_tipo = $det_cliente_tipo_cliente["ref_cod_cliente_tipo"];
$obj_cliente_tipo_exemplar_tipo = new clsPmieducarClienteTipoExemplarTipo( $cod_cliente_tipo, $cod_exemplar_tipo );
$det_cliente_tipo_exemplar_tipo = $obj_cliente_tipo_exemplar_tipo->detalhe();
// qtde de dias disponiveis para emprestimo
$dias_emprestimo = $det_cliente_tipo_exemplar_tipo["dias_emprestimo"];
}
$data_entrega = date("Y-m-d", strtotime("$this->data_retirada +".$dias_emprestimo." days"));
//---------------------DIAS FUNCIONAMENTO----------------------//
$obj_biblioteca_dia = new clsPmieducarBibliotecaDia();
$lst_biblioteca_dia = $obj_biblioteca_dia->lista($this->ref_cod_biblioteca);
if( is_array( $lst_biblioteca_dia ) && count( $lst_biblioteca_dia ) )
{
foreach ($lst_biblioteca_dia AS $dia_semana)
{
// dias de funcionamento da biblioteca
$biblioteca_dias_semana[] = $dia_semana["dia"];
}
}
// salva somente os dias que n se repetem ( dias de n funcionamento)
$biblioteca_dias_folga = array_diff($this->dias_da_semana, $biblioteca_dias_semana);
// inverte as relacoes entre chaves e valores ( de $variavel["Sun"] => 1, para $variavel[1] => "Sun")
$biblioteca_dias_folga = array_flip($biblioteca_dias_folga);
//---------------------DIAS FERIADO----------------------//
$obj_biblioteca_feriado = new clsPmieducarBibliotecaFeriados();
$lst_biblioteca_feriado = $obj_biblioteca_feriado->lista( null, $this->ref_cod_biblioteca );
if( is_array( $lst_biblioteca_feriado ) && count( $lst_biblioteca_feriado ) )
{
foreach ($lst_biblioteca_feriado AS $dia_feriado)
{
// dias de feriado da biblioteca
$biblioteca_dias_feriado[] = dataFromPgToBr($dia_feriado["data_feriado"], "D Y-m-d");
}
}
// devido a comparacao das datas, é necessario mudar o formato da data
$data_entrega = dataFromPgToBr($data_entrega, "D Y-m-d");
if(!is_array($biblioteca_dias_folga))
{
$biblioteca_dias_folga = array(null);
}
if(!is_array($biblioteca_dias_feriado))
{
$biblioteca_dias_feriado = array(null);
}
// verifica se a data cai em algum dia que a biblioteca n funciona
while( in_array(substr($data_entrega,0,3), $biblioteca_dias_folga) || in_array($data_entrega, $biblioteca_dias_feriado) )
{
$data_entrega = date("D Y-m-d ",strtotime("$data_entrega +1 day"));
$data_entrega = dataFromPgToBr($data_entrega, "D Y-m-d");
}
$data_entrega = dataFromPgToBr($data_entrega, "Y-m-d");
// verifica se houve atraso na devolucao do exemplar
if ($data_entrega < date('Y-m-d'))
{
$dias_atraso = (int)((time() - strtotime($data_entrega)) / 86400);
$dias_atraso = $dias_atraso > 0 ? $dias_atraso : 0;
$valor_divida = $dias_atraso * $valor_multa_biblioteca;
$valor_divida = number_format($valor_divida, 2,",",".");
$data_entrega = dataFromPgToBr($data_entrega, "d/m/Y");
}
// foreign keys
$obj_cliente = new clsPmieducarCliente($this->ref_cod_cliente);
$det_cliente = $obj_cliente->detalhe();
$ref_idpes = $det_cliente["ref_idpes"];
$obj_pessoa = new clsPessoa_($ref_idpes);
$det_pessoa = $obj_pessoa->detalhe();
$nm_pessoa = $det_pessoa["nome"];
$this->campoTextoInv("nm_pessoa", "Cliente", $nm_pessoa, 30, 255);
$ref_cod_exemplar_ = $this->ref_cod_exemplar;
$this->campoTextoInv("ref_cod_exemplar_", "Tombo", $ref_cod_exemplar_, 15, 50);
$this->campoOculto( "ref_cod_exemplar", $this->ref_cod_exemplar );
$this->campoTextoInv("titulo_obra", "Obra", $titulo_obra, 30, 255);
@session_start();
$reload = $_SESSION['reload'];
@session_write_close();
if ($valor_divida && !$reload )
{
$this->valor_multa = $valor_divida;
$this->campoMonetario("valor_divida", "Valor Multa", $valor_divida, 8, 8,false,'','','',true);
$this->campoOculto( "valor_multa", $this->valor_multa );
$reload = 1;
@session_start();
$_SESSION['reload'] = $reload;
@session_write_close();
echo "";
}
elseif ($valor_divida && $reload )
{
echo "";
$valor_divida = '0,00';
$this->campoMonetario("valor_divida", "Valor Multa", $valor_divida, 8, 8,false,'','','',true);
$this->campoOculto( "valor_multa", $this->valor_multa );
}
}
function Novo()
{
@session_start();
$this->pessoa_logada = $_SESSION['id_pessoa'];
@session_write_close();
$obj_permissoes = new clsPermissoes();
$obj_permissoes->permissao_cadastra( 628, $this->pessoa_logada, 11, "educar_exemplar_devolucao_lst.php" );
$this->valor_multa = urldecode($this->valor_multa);
$this->valor_multa = str_replace(".","",$this->valor_multa);
$this->valor_multa = str_replace(",",".",$this->valor_multa);
// echo $this->cod_emprestimo." / ".$this->pessoa_logada." / ".date('Y-m-d')." / ".$this->valor_multa;die;
$obj_situacao = new clsPmieducarSituacao();
$lst_situacao = $obj_situacao->lista(null,null,null,null,2,null,1,0,null,null,null,null,1,$this->ref_cod_biblioteca);
if( is_array( $lst_situacao ) && count( $lst_situacao ) )
{
$det_situacao = array_shift($lst_situacao);
$cod_situacao = $det_situacao["cod_situacao"];
}
else
{
echo "";
return false;
}
$obj = new clsPmieducarExemplarEmprestimo( $this->cod_emprestimo, $this->pessoa_logada, null, null, null, null, date('Y-m-d'), $this->valor_multa);
$editou = $obj->edita();
if( $editou )
{
$obj = new clsPmieducarExemplar( $this->ref_cod_exemplar, null, null, null, $cod_situacao, $this->pessoa_logada, null, null, null, null, null, 1 );
$editou = $obj->edita();
if (!$editou)
{
$this->mensagem = "Cadastro não realizado.
";
echo "";
return false;
}
$this->mensagem .= "Cadastro efetuado com sucesso.
";
header( "Location: educar_exemplar_devolucao_lst.php" );
die();
return true;
}
$this->mensagem = "Edição não realizada.
";
echo "";
return false;
}
}
// cria uma extensao da classe base
$pagina = new clsIndexBase();
// cria o conteudo
$miolo = new indice();
// adiciona o conteudo na clsBase
$pagina->addForm( $miolo );
// gera o html
$pagina->MakeAll();
?>