Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //BUSCANDO AS CLASSES
- include_once __DIR__ . "/Conexao.class.php";
- class ReceitaDespesa {
- //ATRIBUTOS
- private $con;
- private $idSequencial;
- private $id;
- private $valor;
- private $dataVencimento;
- private $realizado;
- private $dataRealizado;
- private $parcelas;
- private $numeroParcela;
- private $observacoes;
- private $lancamento;
- private $tipoMovimento;
- private $tipo;
- private $idUsuario;
- //CONSTRUTOR
- public function __construct() {
- $this->con = new Conexao();
- }
- //GETTERS E SETTERS
- public function setIdSequencial($idSequencial) {
- $this->idSequencial = $idSequencial;
- }
- public function getIdSequencial() {
- return $this->idSequencial;
- }
- public function setId($id) {
- $this->id = $id;
- }
- public function getId() {
- return $this->id;
- }
- public function setValor($valor) {
- $this->valor = $valor;
- }
- public function getValor() {
- return $this->valor;
- }
- public function setDataVencimento($dataVencimento) {
- $this->dataVencimento = $dataVencimento;
- }
- public function getDataVencimento() {
- return $this->dataVencimento;
- }
- public function setRealizado($realizado) {
- $this->realizado = $realizado;
- }
- public function getRealizado() {
- return $this->realizado;
- }
- public function setDataRealizado($dataRealizado) {
- $this->dataRealizado = $dataRealizado;
- }
- public function getDataRealizado() {
- return $this->dataRealizado;
- }
- public function setParcelas($parcelas) {
- $this->parcelas = $parcelas;
- }
- public function getParcelas() {
- return $this->parcelas;
- }
- public function setNumeroParcela($numeroParcela) {
- $this->numeroParcela = $numeroParcela;
- }
- public function getNumeroParcela() {
- return $this->numeroParcela;
- }
- public function setObservacoes($observacoes) {
- $this->observacoes = $observacoes;
- }
- public function getObversacoes() {
- return $this->observacoes;
- }
- public function setLancamento($lancamento) {
- $this->lancamento = $lancamento;
- }
- public function getLancamento() {
- return $this->lancamento;
- }
- public function setTipoMovimento($tipoMovimento) {
- $this->tipoMovimento= $tipoMovimento;
- }
- public function getTipoMovimento() {
- return $this->tipoMovimento;
- }
- public function setTipo($tipo) {
- $this->tipo = $tipo;
- }
- public function getTipo() {
- return $this->tipo;
- }
- public function setIdUsuario($idUsuario) {
- $this->idUsuario = $idUsuario;
- }
- public function getIdUsuario() {
- return $this->idUsuario;
- }
- //METODOS
- public function ListarSaldoPrevisto()
- {
- $sql = "SELECT IFNULL(FORMAT(SUM(t.valor),2,'de_DE'),'0,00') AS saldo_previsto ";
- $sql .= "FROM (SELECT d.valor_despesa*-1 AS valor, d.data_vencimento, d.id_usuario FROM despesas AS d ";
- $sql .= "UNION ";
- $sql .= "SELECT r.valor_receita, r.data_vencimento, r.id_usuario FROM receitas AS r) AS t ";
- $sql .= "WHERE DATE_FORMAT(t.data_vencimento,'%Y-%m') <= :periodo AND t.id_usuario = :id_usuario";
- try {
- $query = $this->con->conectar()->prepare($sql);
- $query->bindParam(":id_usuario", $this->idUsuario, PDO::PARAM_INT);
- $query->bindParam(":periodo", $this->dataVencimento, PDO::PARAM_STR);
- $query->execute();
- $retorno = array();
- while ($linha = $query->fetch(PDO::FETCH_ASSOC)) {
- $retorno[] = $linha;
- }
- return $retorno;
- } catch(PDOException $e) {
- return "Error: ".$e->getMessage();
- }
- }
- public function ListarSaldoEfetivo()
- {
- $sql = "SELECT IFNULL(FORMAT(SUM(t.valor),2,'de_DE'),'0,00') AS saldo_efetivo ";
- $sql .= "FROM (SELECT d.valor_despesa*-1 AS valor, d.data_vencimento, d.pago AS realizado, d.id_usuario FROM despesas AS d ";
- $sql .= "UNION ";
- $sql .= "SELECT r.valor_receita, r.data_vencimento, r.recebido AS realizado, r.id_usuario FROM receitas AS r) AS t ";
- $sql .= "WHERE DATE_FORMAT(t.data_vencimento,'%Y-%m') <= :periodo AND t.realizado = 1 AND t.id_usuario = :id_usuario";
- try {
- $query = $this->con->conectar()->prepare($sql);
- $query->bindParam(":id_usuario", $this->idUsuario, PDO::PARAM_INT);
- $query->bindParam(":periodo", $this->dataVencimento, PDO::PARAM_STR);
- $query->execute();
- $retorno = array();
- while ($linha = $query->fetch(PDO::FETCH_ASSOC)) {
- $retorno[] = $linha;
- }
- return $retorno;
- } catch(PDOException $e) {
- return "Error: ".$e->getMessage();
- }
- }
- public function ListarVencimentosProximos()
- {
- $sql = "SELECT DATE_FORMAT(data_vencimento, '%d/%m/%Y') data_vencimento, FORMAT(valor, 2, 'de_DE') AS valor, realizado, lancamento, tipo ";
- $sql .= "FROM (SELECT r.data_vencimento AS data_vencimento, r.valor_receita AS valor, r.recebido AS realizado, 'Receita' AS lancamento, tr.tipo_receita AS tipo, r.id_usuario AS id_usuario ";
- $sql .= "FROM receitas AS r INNER JOIN tipo_receita AS tr ON (r.id_tipo_receita = tr.id_tipo_receita) ";
- $sql .= "UNION ";
- $sql .= "SELECT d.data_vencimento AS data_vencimento, d.valor_despesa AS valor, d.pago AS realizado, c.nome_categoria AS lancamento, td.tipo_despesa AS tipo, d.id_usuario AS id_usuario ";
- $sql .= "FROM despesas AS d INNER JOIN tipo_despesa AS td ON (d.id_tipo_despesa = td.id_tipo_despesa) INNER JOIN categorias AS c ON (td.id_categoria = c.id_categoria)) AS origem ";
- $sql .= "WHERE realizado = 0 AND data_vencimento BETWEEN (CURRENT_DATE() - INTERVAL 10 DAY) AND CURRENT_DATE() AND id_usuario = :id_usuario ORDER BY data_vencimento DESC";
- try {
- $query = $this->con->conectar()->prepare($sql);
- $query->bindParam(":id_usuario", $this->idUsuario, PDO::PARAM_INT);
- $query->execute();
- $retorno = array();
- while ($linha = $query->fetch(PDO::FETCH_ASSOC)) {
- $retorno[] = $linha;
- }
- return $retorno;
- } catch(PDOException $e) {
- return "Error: ".$e->getMessage();
- }
- }
- public function GerarRelatorioExtrato()
- {
- $insertData = array();
- $sql = "SELECT FORMAT(valor,2,'de_DE') AS valor, DATE_FORMAT(data_vencimento, '%d/%m/%Y') AS data_vencimento, realizado, DATE_FORMAT(data_realizado, '%d/%m/%Y') AS data_realizado, parcelas, numero_parcela, observacoes, lancamento, tipo_movimento, tipo, id_usuario ";
- $sql .= "FROM (SELECT r.valor_receita AS valor, r.data_vencimento AS data_vencimento, r.recebido AS realizado, r.data_recebimento AS data_realizado, r.parcelas AS parcelas, r.numero_parcela AS numero_parcela, r.observacoes AS observacoes, 'Receita' AS lancamento, re.tipo_recebimento AS tipo_movimento, tr.tipo_receita AS tipo, r.id_usuario AS id_usuario FROM receitas AS r ";
- $sql .= "INNER JOIN tipo_receita AS tr ON (r.id_tipo_receita = tr.id_tipo_receita) ";
- $sql .= "INNER JOIN tipo_recebimento AS re ON (r.id_tipo_recebimento = re.id_tipo_recebimento) ";
- $sql .= "UNION ";
- $sql .= "SELECT d.valor_despesa AS valor, d.data_vencimento AS data_vencimento, d.pago AS realizado, d.data_pagamento AS data_realizado, d.parcelas as parcelas, d.numero_parcela as numero_parcela, d.observacoes as observacoes, c.nome_categoria as lancamento, tp.tipo_pagamento as tipo_movimento, td.tipo_despesa AS tipo, d.id_usuario AS id_usuario FROM despesas AS d ";
- $sql .= "INNER JOIN tipo_despesa AS td ON (d.id_tipo_despesa = td.id_tipo_despesa) ";
- $sql .= "INNER JOIN tipo_pagamento AS tp ON (d.id_tipo_pagamento = tp.id_tipo_pagamento) ";
- $sql .= "INNER JOIN categorias AS c ON (td.id_categoria = c.id_categoria)) AS origem ";
- $sql .= "WHERE id_usuario = :id_usuario ";
- $insertData[":id_usuario"] = $this->idUsuario;
- //SE O MÊS ESPECÍFICO NÃO FOR VAZIO
- if(!empty($this->dataVencimento) || !empty($this->dataRealizado)) {
- $sql .= "AND (DATE_FORMAT(data_realizado,'%Y-%m') = :periodo_realizado OR DATE_FORMAT(data_vencimento,'%Y-%m') = :periodo_vencimento) ";
- $insertData[":periodo_realizado"] = $this->dataRealizado;
- $insertData[":periodo_vencimento"] = $this->dataVencimento;
- }
- $n = 0; //VARIÁVEL DE INCREMENTO
- //SE O TIPO NÃO FOR VAZIO
- if(!empty($this->tipo)) {
- $sql .= "AND (";
- foreach($this->tipo as $tipo) {
- ($n > 0) ? $sql .= "OR " : "";
- $sql .= "tipo = :tipo".$n." ";
- $insertData[":tipo".$n] = $tipo;
- $n++;
- }
- $sql .= ") ";
- }
- //SE REALIZADO FOR UM NÚMERO E FOR IGUAL A 0 ou 1
- if(is_numeric($this->realizado)) {
- if($this->realizado == 0 || $this->realizado == 1) {
- $sql .= "AND realizado = :realizado ";
- $insertData[":realizado"] = $this->realizado;
- }
- }
- $sql .= "ORDER BY numero_parcela ASC";
- try {
- $query = $this->con->conectar()->prepare($sql);
- $query->execute($insertData);
- $retorno = array();
- while ($linha = $query->fetch(PDO::FETCH_ASSOC)) {
- $retorno[] = $linha;
- }
- return $retorno;
- } catch(PDOException $e) {
- return "Error: ".$e->getMessage();
- }
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement