<?php


class RetornoPagamento_Adm extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('Cadastro_Model');
        $this->load->model('Saldo_Model');
        $this->load->model('Pagamento_Model');
        $this->load->model('Transferencia_Model');
        $this->load->database();
    }
 
    public function processa() {
       
        $resposta = (object) array(
            'message_response' => (object) array(
                'message' => $this->input->post('message_response')['message'],
                'token' =>$this->input->post('message_response')['token'],
            ),
            'data_response' => (object) array(
                'transaction' => (object) array(
                    'payment' => (object) array(
                        'payment_method_id' => $this->input->post('data_response')['transaction']['payment']['payment_method_id']
                    ),
                    'order_number' => $this->input->post('data_response')['transaction']['order_number'],
                    'status_id' => $this->input->post('data_response')['transaction']['status_id']
                )
            )
        );

    $token = $resposta->message_response->token;
 
    if ($resposta->message_response->message == "success") {
       
        $codigo_pagamento   =  (string)$resposta->data_response->transaction->payment->payment_method_id;
        $pedido             =  (string)$resposta->data_response->transaction->order_number;
        $cod_status         =  (string)$resposta->data_response->transaction->status_id;

        $codigo_pagamento_dinheiro = array(221);

        if(in_array((int)$codigo_pagamento,$codigo_pagamento_dinheiro)){
          $forma = 'Dinheiro';
        }   
        
        
            if ($cod_status == 4) {
                $status_banco = "3";
            }
            
            if ($cod_status == 5) {
                $status_banco = "2";
            }
            
            if ($cod_status == 6) {
                $status_banco = "1";
            }
            if ($cod_status == 7) {
                $status_banco = "5";
            }

            if ($cod_status == 24) {
                $status_banco = "6";
            }
            if ($cod_status == 87) {
                $status_banco = "2";
            }
            if ($cod_status == 88) {
                $status_banco = "6";
            }
            if ($cod_status == 89) {
                $status_banco = "5";
            }

            $r_transacao = array('id_transacao' => $pedido);
            $transacao = $this->Pagamento_Model->get_data($r_transacao);
           
            // ATUALIZAR A TRANSAÇÃO RECUPERADA NA TABELA AMN_TRANSAÇÃO 
            $r_transacao_set = array('situacao' => $status_banco, 'tipo_pagamento' => $forma);
            $r_transacao_where = array('id_transacao' => $transacao['id_transacao']);
            $this->Pagamento_Model->update($r_transacao_set, $r_transacao_where);
            
            // CONTAGEM DE TODOS OS REGISTROS ONDE TODOS OS PEDIDOS SÃO = PAGOS
            $data = array('transacao' =>  $pedido, 'pago' => 1);
            $log_transacao = $this->Pagamento_Model->count_all_data($data);

            // CRIA O ARRAY DE INSERCAO DE LOG
            $arr_log_transacao = array(
            'transacao'       =>  $pedido,
            'id_cliente'      =>  $transacao['id_cliente'],
            'data'            =>  date('Y-m-d H:i:s'),
            'situacao'        =>  $cod_status,
            'pago'            =>  0,
            'cod_interme'     =>  $token,
            'responsavel'     =>  'administradoramazonia',
        );
            
        // INSERE O LOG NA TABELA
            $this->Pagamento_Model->insert($arr_log_transacao);
           
            $log_transacao = $log_transacao[0]->total;

            if( ($cod_status == 6) && ($log_transacao == 0) ){
            
            $arr_log_transacao = array(
            'transacao'       =>  $pedido,
            'id_cliente'      =>  $transacao['id_cliente'],
            'data'            =>  date('Y-m-d H:i:s'),
            'situacao'        =>  $cod_status,
            'pago'            =>  1,
            'cod_interme'     =>  $token,
            'responsavel'     =>  'administradoramazonia',
            );
            
            $this->Pagamento_Model->insert($arr_log_transacao);
            
           // LIBERA O SALDO PAGO PARA O ALUNO
           $this->liberasaldo($pedido, $forma);
        } 
        
                    

    }
    }
    public function liberasaldo($pedido, $forma) {
        
        $r_transacao = array('id_transacao' => $pedido);
        $transacao = $this->Pagamento_Model->get_data($r_transacao);
        $id_cliente = $transacao['id_cliente'];
       
        $cliente = $this->Pagamento_Model->cliente($id_cliente);
        $id_negocio = $cliente['id_negocio'];
    
        $id_transacao = $transacao['id_transacao'];

        $saldo_antigo = $this->Pagamento_Model->obtemDinheiro($id_cliente);
        $dinheiro = $saldo_antigo['saldo'];
        $valor = $transacao['valor'];
        $saldo_novo = $valor + $dinheiro;

        $dados = array('id_transacao' => $id_transacao, 'tipo_transacao_movimentacao' => 'Adição de Saldo', 'id_negocio_conta_origem' => $id_negocio, 'id_negocio_conta_destino' => $id_negocio, 'valor' => $transacao['valor'], 'saldo_conta_origem' => $saldo_novo, 'data' => date('Y-m-d H:i:s'), 'status_operacao' => 'CONCLUIDO');
        $this->Transferencia_Model->insere_transacao_transferencia($dados);
        $this->Pagamento_Model->atualizaSaldoAnterior($dinheiro,$id_negocio ); // ATUALIZA O SALDO ANTERIOR
        $this->Pagamento_Model->atualizaDinheiro($saldo_novo, $id_cliente);
        $this->Pagamento_Model->atualizatransacaopaga($id_transacao, $forma);
    }
}
