$PaginaP, "limite" => $limite, "padrao" => $padrao]; } public function get_listagem() { $comandoSQL = 'SELECT uuid_lanc AS uuid, vtab_titulos.titulo, vtab_titulos.valor, valorpag, formapag, datavenc, vtab_titulos.celular, nossonum, linhadig, vtab_titulos.nome, vtab_titulos.login, vtab_titulos.cpf_cnpj, vtab_titulos.tipo, vtab_titulos.email, vtab_titulos.endereco, vtab_titulos.numero, vtab_titulos.bairro, vtab_titulos.complemento, vtab_titulos.cidade, vtab_titulos.estado, vtab_titulos.cep, status, vtab_titulos.cli_ativado, sis_cliente.zap, sis_cliente.bloqueado, sis_cliente.dias_corte, sis_qrpix.qrcode AS pix FROM vtab_titulos LEFT JOIN sis_cliente ON vtab_titulos.uuid_cliente = sis_cliente.uuid_cliente LEFT JOIN sis_qrpix ON vtab_titulos.uuid_lanc = sis_qrpix.titulo WHERE deltitulo = 0 ORDER BY vtab_titulos.titulo;'; $rotinaSQL = DB::prepare($comandoSQL); $rotinaSQL->execute(); $resultadosSQL = $rotinaSQL->fetchAll(); $numeroDeLinhas = $rotinaSQL->rowCount(); if (function_exists("api_linkpix")) { foreach ($resultadosSQL as $Titulo) { if ($Titulo->pix !== null) { $Titulo->pix_link = api_linkpix($Titulo->uuid); $Titulo->pix_qr = api_qrpix($Titulo->uuid); } else { unset($Titulo->pix); } } } echo json_encode([ "Total" => $numeroDeLinhas, "titulos" => $resultadosSQL, ]); } public function get_listar($valor) { $parametros = $this->parametros($valor); $countSQL = "SELECT COUNT(*) AS total FROM vtab_titulos WHERE deltitulo = 0"; $rotinaCount = DB::prepare($countSQL); $rotinaCount->execute(); $resultadosCount = $rotinaCount->fetch(); $total = intval($resultadosCount->total); $totalPaginas = ceil($total / $parametros["limite"]); $comandoSQL = 'SELECT uuid_lanc AS uuid, vtab_titulos.titulo, valor, valorpag, datavenc, nossonum, linhadig, nome, login, cpf_cnpj, tipo, email, endereco, numero, bairro, complemento, cidade, estado, cep, status, cli_ativado, uuid_lanc, sis_qrpix.qrcode AS pix FROM vtab_titulos LEFT JOIN sis_qrpix ON vtab_titulos.uuid_lanc = sis_qrpix.titulo WHERE deltitulo = 0 ORDER BY vtab_titulos.titulo LIMIT :pagina, :limite;'; $rotinaSQL = DB::prepare($comandoSQL); $rotinaSQL->bindParam("pagina", $parametros["padrao"], PDO::PARAM_INT); $rotinaSQL->bindParam("limite", $parametros["limite"], PDO::PARAM_INT); $rotinaSQL->execute(); $resultadosSQL = $rotinaSQL->fetchAll(); $numeroDeLinhas = $rotinaSQL->rowCount(); if (function_exists("api_linkpix")) { foreach ($resultadosSQL as $Titulo) { if ($Titulo->pix !== null) { $Titulo->pix_link = api_linkpix($Titulo->uuid); $Titulo->pix_qr = api_qrpix($Titulo->uuid); } else { unset($Titulo->pix); } } } $ConsultaLimite = $parametros["pagina"] == $totalPaginas ? $numeroDeLinhas : $parametros["limite"]; if ($parametros["padrao"] >= $total) { echo json_encode([ "mensagem" => "Pagina atual acima do limite de paginas", ]); } else { echo json_encode([ "total_registros" => $total, "consulta_atual" => $ConsultaLimite, "pagina_atual" => $parametros["pagina"], "total_paginas" => $totalPaginas, "titulos" => $resultadosSQL, ]); } } public function get_show($valor) { $comandoSQL = 'SELECT sis_lanc.*, sis_qrpix.qrcode AS pix FROM sis_lanc LEFT JOIN sis_qrpix ON sis_lanc.uuid_lanc = sis_qrpix.titulo WHERE sis_lanc.id = :titulo OR sis_lanc.uuid_lanc = :titulo LIMIT 1'; $rotinaSQL = DB::prepare($comandoSQL); $rotinaSQL->bindParam("titulo", $valor); $rotinaSQL->execute(); $resultadosSQL = $rotinaSQL->fetch(); $numeroDeLinhas = $rotinaSQL->rowCount(); if (function_exists("api_linkpix")) { if ($resultadosSQL->pix !== null) { $resultadosSQL->pix_link = api_linkpix($resultadosSQL->uuid); $resultadosSQL->pix_qr = api_qrpix($resultadosSQL->uuid); } else { unset($resultadosSQL->pix); } } echo json_encode($resultadosSQL); } public function get_titulos($valor) { $comandoSQL = "SELECT uuid_lanc AS uuid, vtab_titulos.login, vtab_titulos.nome, vtab_titulos.titulo, status, vtab_titulos.celular, vtab_titulos.cli_ativado, vtab_titulos.tipo, valor, linhadig, datavenc, vtab_titulos.cpf_cnpj, sis_cliente.zap, sis_cliente.bloqueado, sis_cliente.dias_corte, sis_qrpix.qrcode AS pix FROM vtab_titulos LEFT JOIN sis_cliente ON vtab_titulos.uuid_cliente = sis_cliente.uuid_cliente LEFT JOIN sis_qrpix ON vtab_titulos.uuid_lanc = sis_qrpix.titulo WHERE (vtab_titulos.login = :valor OR vtab_titulos.cpf_cnpj = :valor OR vtab_titulos.datavenc = :valor) AND deltitulo = 0 ORDER BY vtab_titulos.titulo;"; $rotinaSQL = DB::prepare($comandoSQL); $rotinaSQL->bindParam("valor", $valor); $rotinaSQL->execute(); $resultadosSQL = $rotinaSQL->fetchAll(); $numeroDeLinhas = $rotinaSQL->rowCount(); if (function_exists("api_linkpix")) { foreach ($resultadosSQL as $Titulo) { if ($Titulo->pix !== null) { $Titulo->pix_link = api_linkpix($Titulo->uuid); $Titulo->pix_qr = api_qrpix($Titulo->uuid); } else { unset($Titulo->pix); } } } if ($numeroDeLinhas > 0) { echo json_encode([ "Total" => $numeroDeLinhas, "titulos" => $resultadosSQL, ]); } else { echo json_encode(["mensagem" => "Registro não encontrado"]); } } public function get_aberto($valor) { $comandoSQL = "SELECT uuid_lanc AS uuid, login, nome, vtab_titulos.titulo, status, cli_ativado, tipo, valor, linhadig, datavenc, login, cpf_cnpj, sis_qrpix.qrcode AS pix FROM vtab_titulos LEFT JOIN sis_qrpix ON vtab_titulos.uuid_lanc = sis_qrpix.titulo WHERE (login = :valor OR cpf_cnpj = :valor) AND status = 'aberto' AND deltitulo = 0 ORDER BY vtab_titulos.titulo;"; $rotinaSQL = DB::prepare($comandoSQL); $rotinaSQL->bindParam("valor", $valor); $rotinaSQL->execute(); $resultadosSQL = $rotinaSQL->fetchAll(); $numeroDeLinhas = $rotinaSQL->rowCount(); if (function_exists("api_linkpix")) { foreach ($resultadosSQL as $Titulo) { if ($Titulo->pix !== null) { $Titulo->pix_link = api_linkpix($Titulo->uuid); $Titulo->pix_qr = api_qrpix($Titulo->uuid); } else { unset($Titulo->pix); } } } if ($numeroDeLinhas > 0) { echo json_encode([ "Total" => $numeroDeLinhas, "titulos" => $resultadosSQL, ]); } else { echo json_encode(["mensagem" => "Registro não encontrado"]); } } public function get_vencido($valor) { $comandoSQL = "SELECT uuid_lanc AS uuid, login, nome, vtab_titulos.titulo, status, cli_ativado, tipo, valor, linhadig, datavenc, login, cpf_cnpj, sis_qrpix.qrcode AS pix FROM vtab_titulos LEFT JOIN sis_qrpix ON vtab_titulos.uuid_lanc = sis_qrpix.titulo WHERE (login = :valor OR cpf_cnpj = :valor) AND status = 'vencido' AND deltitulo = 0 ORDER BY vtab_titulos.titulo;"; $rotinaSQL = DB::prepare($comandoSQL); $rotinaSQL->bindParam("valor", $valor); $rotinaSQL->execute(); $resultadosSQL = $rotinaSQL->fetchAll(); $numeroDeLinhas = $rotinaSQL->rowCount(); if (function_exists("api_linkpix")) { foreach ($resultadosSQL as $Titulo) { if ($Titulo->pix !== null) { $Titulo->pix_link = api_linkpix($Titulo->uuid); $Titulo->pix_qr = api_qrpix($Titulo->uuid); } else { unset($Titulo->pix); } } } if ($numeroDeLinhas > 0) { echo json_encode([ "Total" => $numeroDeLinhas, "titulos" => $resultadosSQL, ]); } else { echo json_encode(["mensagem" => "Registro não encontrado"]); } } public function get_pago($valor) { $comandoSQL = "SELECT uuid_lanc AS uuid, login, nome, valorpag, formapag, vtab_titulos.titulo, status, zap, cli_ativado, tipo, valor, linhadig, datavenc, login, cpf_cnpj, sis_qrpix.qrcode AS pix FROM vtab_titulos LEFT JOIN sis_qrpix ON vtab_titulos.uuid_lanc = sis_qrpix.titulo WHERE (login = :valor OR cpf_cnpj = :valor OR vtab_titulos.titulo = :valor) AND status = 'pago' AND deltitulo = 0 ORDER BY vtab_titulos.titulo;"; $rotinaSQL = DB::prepare($comandoSQL); $rotinaSQL->bindParam("valor", $valor); $rotinaSQL->execute(); $resultadosSQL = $rotinaSQL->fetchAll(); $numeroDeLinhas = $rotinaSQL->rowCount(); if (function_exists("api_linkpix")) { foreach ($resultadosSQL as $Titulo) { if ($Titulo->pix !== null) { $Titulo->pix_link = api_linkpix($Titulo->uuid); $Titulo->pix_qr = api_qrpix($Titulo->uuid); } else { unset($Titulo->pix); } } } if ($numeroDeLinhas > 0) { echo json_encode([ "Total" => $numeroDeLinhas, "titulos" => $resultadosSQL, ]); } else { echo json_encode(["mensagem" => "Registro não encontrado"]); } } public function post_titulos($data) { $usuarios_login = count($data->login) != 0 ? $data->login : ($usuarios_login = [""]); $usuarios_cpf = count($data->cpf_cnpj) != 0 ? $data->cpf_cnpj : ($usuarios_cpf = [""]); $dadosConsulta = array_merge($usuarios_login, $usuarios_cpf); $status = isset($data->status) ? $data->status : null; $login = $this->implodeDados($usuarios_login); $cpf_cnpj = $this->implodeDados($usuarios_cpf); $comandoSQL = "SELECT uuid_lanc AS uuid, login, nome, vtab_titulos.titulo, status, cli_ativado, tipo, valor, linhadig, datavenc, login, cpf_cnpj, sis_qrpix.qrcode AS pix FROM vtab_titulos LEFT JOIN sis_qrpix ON vtab_titulos.uuid_lanc = sis_qrpix.titulo WHERE (login IN ($login) OR cpf_cnpj IN ($cpf_cnpj)) AND deltitulo = 0"; if ($status != null) { $comandoSQL .= " AND status = ?"; } $comandoSQL .= " ORDER BY vtab_titulos.titulo;"; $rotinaSQL = DB::prepare($comandoSQL); foreach ($dadosConsulta as $key => $valor) { $atual = $key + 1; $rotinaSQL->bindParam($atual, $dadosConsulta[$key]); } if ($status != null) { $rotinaSQL->bindParam($atual + 1, $status); } $rotinaSQL->execute(); $resultadosSQL = $rotinaSQL->fetchAll(); $numeroDeLinhas = $rotinaSQL->rowCount(); if (function_exists("api_linkpix")) { foreach ($resultadosSQL as $Titulo) { if ($Titulo->pix !== null) { $Titulo->pix_link = api_linkpix($Titulo->uuid); $Titulo->pix_qr = api_qrpix($Titulo->uuid); } else { unset($Titulo->pix); } } } if ($numeroDeLinhas > 0) { echo json_encode([ "Total" => $numeroDeLinhas, "titulos" => $resultadosSQL, ]); } else { echo json_encode(["mensagem" => "Registro não encontrado"]); } } public function put_receber($data) { $coletor = isset($data->coletor) && $data->coletor !== "" ? $data->coletor : "API"; $valor_pago = $data->valor; $formapag = $data->forma; $titulo = $data->uuid; $consultaSQL = "SELECT id, login, valor FROM sis_lanc WHERE uuid_lanc = :titulo"; $Consulta = DB::prepare($consultaSQL); $Consulta->bindParam("titulo", $titulo); $Consulta->execute(); $Result = $Consulta->fetch(); $numeroDeLinhas = $Consulta->rowCount(); if ($numeroDeLinhas > 0) { $valor = isset($valor_pago) && $valor_pago !== "" ? $valor_pago : $Result->valor; $comandoSQL = "UPDATE sis_lanc SET coletor = :coletor, valorpag = :valorpag, datapag = now(), status = 'pago', formapag = :formapag WHERE uuid_lanc = :titulo AND status <> 'pago';"; $rotinaSQL = DB::prepare($comandoSQL); $rotinaSQL->bindParam("coletor", $coletor); $rotinaSQL->bindParam("valorpag", $valor); $rotinaSQL->bindParam("formapag", $formapag); $rotinaSQL->bindParam("titulo", $titulo); $rotinaSQL->execute(); $numeroDeLinhas = $rotinaSQL->rowCount(); if ($numeroDeLinhas > 0) { $comandoSQLInsert = "INSERT INTO sis_caixa (uuid_caixa, usuario, data, historico, entrada, tipomov, planodecontas) VALUES (uuid(), :coletor, now(), 'Recebimento do titulo $Result->id via API / $Result->login ', :valorpag, 'aut', 'Outros');"; $rotinaSQLInsert = DB::prepare($comandoSQLInsert); $rotinaSQLInsert->bindParam("valorpag", $valor); $rotinaSQLInsert->bindParam("coletor", $coletor); $rotinaSQLInsert->execute(); echo json_encode([ "status" => "sucesso", "mensagem" => "Registro fechado com sucesso", "dados" => $data, ]); } else { echo json_encode([ "status" => "erro", "mensagem" => "Registro não encontrado", ]); } } else { echo json_encode([ "status" => "erro", "mensagem" => "Registro não encontrado", ]); } } public function put_estornar($data) { $titulo = $data->uuid; $usuario = isset($data->usuario) && $data->usuario !== "" ? $data->usuario : "API"; $consultaSQL = "SELECT id, valorpag, login FROM sis_lanc WHERE uuid_lanc = :titulo"; $Consulta = DB::prepare($consultaSQL); $Consulta->bindParam("titulo", $titulo); $Consulta->execute(); $Result = $Consulta->fetch(); $numeroDeLinhas = $Consulta->rowCount(); if ($numeroDeLinhas > 0) { $comandoSQL = "UPDATE sis_lanc SET datapag = null, status = 'aberto', valorpag = null WHERE uuid_lanc = :titulo AND status = 'pago';"; $rotinaSQL = DB::prepare($comandoSQL); $rotinaSQL->bindParam("titulo", $titulo); $rotinaSQL->execute(); $numeroDeLinhas = $rotinaSQL->rowCount(); if ($numeroDeLinhas > 0) { $comandoCaixa = "INSERT INTO sis_caixa (uuid_caixa, usuario, data, historico, saida, tipomov, planodecontas) VALUES (uuid(), :usuario, now(), 'Titulo $Result->id estornado via API / $Result->login', $Result->valorpag, 'aut', 'Outros')"; $rotinaSQLInsert = DB::prepare($comandoCaixa); $rotinaSQLInsert->bindParam("usuario", $usuario); $rotinaSQLInsert->execute(); echo json_encode([ "status" => "sucesso", "mensagem" => "Registro estornado com sucesso", "dados" => $data, ]); } else { echo json_encode([ "status" => "erro", "mensagem" => "Registro não encontrado", ]); } } else { echo json_encode([ "status" => "erro", "mensagem" => "Registro não encontrado", ]); } } public function delete_id($key) { $comandoSQL = 'DELETE FROM sis_lanc WHERE uuid_lanc = :uuid'; $rotinaSQL = DB::prepare($comandoSQL); $rotinaSQL->bindParam("uuid", $key); $rotinaSQL->execute(); $numeroDeLinhas = $rotinaSQL->rowCount(); if ($numeroDeLinhas > 0) { echo json_encode([ "status" => "sucesso", "mensagem" => "Registro excluido com sucesso", ]); } else { echo json_encode([ "status" => "erro", "mensagem" => "Registro não encontrado", ]); } } }