<?php

class Transferencia_Model extends CI_Model {

    var $table = "amn_cliente_transferencia";

    function __construct() {
        parent::__construct();
    }
     
    public function verificaTransferenciaCliente() {
        // ESSE MÉTODO É USADO PARA VERIFICAR SE O ALUNO POSSUI ALGUMA FATURA PAGA NO SISTEMA
        $this->db->where('id_cliente', $_SESSION['id_cliente']);
        $this->db->where('situacao', 1);
        $this->db->where('tipo_transacao_movimentacao', 'Adição de Saldo');
        $query = $this->db->get('amn_transacao');
            
        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE; //  O ID_TRANSACAO NÃO EXISTE NA TABELA TRANSAÇÃO
        }
    }
    public function clienteNegocioTransferencia($idnegocio) {

        $this->db->select('id_negocio, nome, email, saldo, bonificacao, cpf, ddd_celular, celular, data_cadastro, endereco, numero, complemento, cep, bairro, cidade, estado, situacao');
        $this->db->where('id_negocio', $idnegocio);
        $query = $this->db->get('amn_cliente');

        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE; //  O ID_TRANSACAO NÃO EXISTE NA TABELA TRANSAÇÃO
        }
    }

    public function clienteTransferencia() {

        $this->db->select('id_negocio, nome, email, saldo, bonificacao, cpf, ddd_celular, celular, data_cadastro, endereco, numero, complemento, cep, bairro, cidade, estado, situacao');
        $this->db->where('id_negocio', $_SESSION['id_conta_destino']);
        $query = $this->db->get('amn_cliente');

        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return FALSE; //  O ID_TRANSACAO NÃO EXISTE NA TABELA TRANSAÇÃO
        }
    }

    public function Transferenciacliente() {

        $this->db->select('id_negocio, nome, email, saldo, bonificacao, cpf, ddd_celular, celular, data_cadastro, endereco, numero, complemento, cep, bairro, cidade, estado, situacao');
        $this->db->where('id_negocio', $_SESSION['id_conta_destino']);
        $query = $this->db->get('amn_cliente');

        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE; //  O ID_TRANSACAO NÃO EXISTE NA TABELA TRANSAÇÃO
        }
    }

    function transacao_transferencia($id_transacao) {

        date_default_timezone_set('America/Belem');
        $data = date('Y-m-d H:i:s', time());

        $dados = array(
            'id_transacao' => $id_transacao,
            'id_cliente' => $_SESSION['id_cliente'],
            'tipo_transacao_movimentacao' => 'Transferência de Saldo',
            'data_transacao' => $data,
            'tipo_pagamento' => '0',
            'situacao' => '0',
        );

        $this->db->insert('amn_transacao', $dados);
    }

    function insere_transacao_transferencia($dados) {

        date_default_timezone_set('America/Belem');

        $this->db->insert('amn_cliente_transferencia', $dados);
    }

    public function recuperatransacao_financeira() {

        $this->db->select('id_log_transacao, id_transacao, tipo_transacao_movimentacao, id_negocio_conta_origem, id_negocio_conta_destino, valor, saldo_conta_origem, saldo_conta_destino, bonificacao,data, status_operacao, dispositivo, ip, navegador');
        $this->db->where('id_negocio_conta_origem', $_SESSION['id_negocio']);
        $this->db->order_by("id_log_transacao", "desc");
        $query = $this->db->get('amn_cliente_transferencia');

        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE; //  O ID_TRANSACAO NÃO EXISTE NA TABELA TRANSAÇÃO
        }
    }

    public function debitaSaldo($debito) {

        $data = array('saldo' => $debito);
        $this->db->where('id_cliente', $_SESSION['id_cliente']);
        $this->db->update('amn_cliente', $data);
    }

    public function creditaSaldo($novosaldo) {

        $data = array('saldo' => $novosaldo);
        $this->db->where('id_negocio', $_SESSION['id_conta_destino']);
        $this->db->update('amn_cliente', $data);
    }

    public function creditaBonus($bonus) {

        $data = array('saldo' => $bonus);
        $this->db->where('id_negocio', $_SESSION['id_negocio']);
        $this->db->update('amn_cliente', $data);
    }

    public function verificaTransferencia() {

        $data = date('Y-m-d H:i:s', time());

        $this->db->select('count(*) as contador');
        $this->db->like('status_operacao', 'CONCLUIDO');
        $this->db->where('id_negocio_conta_origem', $_SESSION['id_negocio']);
        $this->db->where('id_negocio_conta_destino', $_SESSION['id_conta_destino']);
        $this->db->where('data', $data);
        $query = $this->db->get('amn_cliente_transferencia');
        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE; //  O ID_TRANSACAO NÃO EXISTE NA TABELA TRANSAÇÃO
        }
    }

    ## EXTRATO ##

    public function extrato_financeiro($mes = NULL, $ano = NULL, $limit = NULL, $offset = NULL) {

        if ($mes == NULL) {
            $mes = date("m");
            $ano = date("Y");
        }
        if ($limit) {
            $this->db->limit($limit, $offset);
        }
        
        $this->db->select('id_log_transacao, id_transacao, tipo_transacao_movimentacao, id_negocio_conta_origem, id_negocio_conta_destino, valor, saldo_conta_origem, saldo_conta_destino, bonificacao,data, status_operacao, dispositivo, ip, navegador');
        $this->db->group_start();
        $this->db->where('id_negocio_conta_origem', $_SESSION['id_negocio']);
        $this->db->or_where('id_negocio_conta_destino', $_SESSION['id_negocio']);
        $this->db->group_end(); 
        $this->db->where('MONTH(data)', $mes);
        $this->db->where('YEAR(data)', $ano);
        $this->db->where('status_operacao', 'CONCLUIDO');
        $this->db->order_by("id_log_transacao", "desc");
        $query = $this->db->get('amn_cliente_transferencia');
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return FALSE; //  O ID_TRANSACAO NÃO EXISTE NA TABELA TRANSAÇÃO
        }
    }

    public function CountAll($mes = NULL, $ano = NULL) {
           if ($mes == NULL) {
            $mes = date("m");
            $ano = date("Y");
        }
        $this->db->where('id_negocio_conta_origem', $_SESSION['id_negocio']);
        $this->db->where('MONTH(data)', $mes);
        $this->db->where('YEAR(data)', $ano);
        $this->db->where('status_operacao', 'CONCLUIDO');
        $query = $this->db->get('amn_cliente_transferencia');
        return $query->num_rows();
    }

    public function verificaTransacaoRealiza() {

        $this->db->where('id_negocio_conta_origem', $_SESSION['id_negocio']);
        $this->db->where('status_operacao', 'CONCLUIDO');
        $query = $this->db->get('amn_cliente_transferencia');
        
        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE; //  O ID_TRANSACAO NÃO EXISTE NA TABELA TRANSAÇÃO
        }
    }

    public function atualizaSaldoAnterior($dinheiro, $id_negocio) {

        $data = array('saldo_anterior' => $dinheiro);
        $this->db->where('id_negocio', $_SESSION['id_negocio']);
        $this->db->update('amn_cliente', $data);
    }

}
