<?php
    include_once "../models/MovimentacoesPixClass.php";

class MovimentacoesPixCtl
{
    private $MovimentacoesPix;

    private $id;
    private $id_movimentacoes;
    private $chave;
    private $tipo;
    private $codigo_instituicao;
    private $nome_instituicao;
    private $agencia;
    private $conta;
    private $tipo_conta;
    private $nome;
    private $documento;
    private $valor;
    private $identificador;
    private $descricao;
    private $data_pagamento;
    private $payment_id;
    private $end_to_end;

    private $celular;
    private $email;

    private $cartaoDigIni;
    private $cartaoDigFim;

    private $ipUser;

    private $numeroCap;
    private $idDocumento;
    private $idAssinatura;

    private $valorTitulo;

    private $retorno;
    private $mensagemRetorno;

    public function __construct()
    {
        $this->MovimentacoesPix = new MovimentacoesPixClass();
    }

    public function getPorId()
    {
        $this->MovimentacoesPix->setId($this->getId());
        $resultado = $this->MovimentacoesPix->getPorId();

        $this->setRetorno($this->MovimentacoesPix->getRetorno());
        $this->setMensagemRetorno($this->MovimentacoesPix->getMensagemRetorno());

        return $resultado;
    }

    public function getPorIdMovimentacao()
    {
        $this->MovimentacoesPix->setIdMovimentacoes($this->getIdMovimentacoes());
        $resultado = $this->MovimentacoesPix->getPorIdMovimentacao();

        $this->setRetorno($this->MovimentacoesPix->getRetorno());
        $this->setMensagemRetorno($this->MovimentacoesPix->getMensagemRetorno());

        return $resultado;
    }

    public function getPorIdDocumentoClickSign()
    {
        $this->MovimentacoesPix->setIdDocumento($this->getIdDocumento());
        $resultado = $this->MovimentacoesPix->getPorIdDocumentoClickSign();

        $this->setRetorno($this->MovimentacoesPix->getRetorno());
        $this->setMensagemRetorno($this->MovimentacoesPix->getMensagemRetorno());

        return $resultado;
    }

    public function getPorIdAssinaturaClickSign()
    {
        $this->MovimentacoesPix->setIdAssinatura($this->getIdAssinatura());
        $resultado = $this->MovimentacoesPix->getPorIdAssinaturaClickSign();

        $this->setRetorno($this->MovimentacoesPix->getRetorno());
        $this->setMensagemRetorno($this->MovimentacoesPix->getMensagemRetorno());

        return $resultado;
    }

    public function getPorNumeroCap()
    {
        $this->MovimentacoesPix->setNumeroCap($this->getNumeroCap());
        $resultado = $this->MovimentacoesPix->getPorNumeroCap();

        $this->setRetorno($this->MovimentacoesPix->getRetorno());
        $this->setMensagemRetorno($this->MovimentacoesPix->getMensagemRetorno());

        return $resultado;
    }

    public function inserir()
    {
        $this->MovimentacoesPix->setIdMovimentacoes($this->getIdMovimentacoes());
        $this->MovimentacoesPix->setChave($this->getChave());
        $this->MovimentacoesPix->setTipo($this->getTipo());
        $this->MovimentacoesPix->setCodigoInstituicao($this->getCodigoInstituicao());
        $this->MovimentacoesPix->setNomeInstituicao($this->getNomeInstituicao());
        $this->MovimentacoesPix->setAgencia($this->getAgencia());
        $this->MovimentacoesPix->setConta($this->getConta());
        $this->MovimentacoesPix->setTipoConta($this->getTipoConta());
        $this->MovimentacoesPix->setNome($this->getNome());
        $this->MovimentacoesPix->setDocumento($this->getDocumento());
        $this->MovimentacoesPix->setValor($this->getValor());
        $this->MovimentacoesPix->setIdentificador($this->getIdentificador());
        $this->MovimentacoesPix->setDescricao($this->getDescricao());
        $this->MovimentacoesPix->setCelular(preg_replace('/[^0-9]/', '', $this->getCelular()));
        $this->MovimentacoesPix->setEmail($this->getEmail());
        $this->MovimentacoesPix->setCartaoDigIni($this->getCartaoDigIni());
        $this->MovimentacoesPix->setCartaoDigFim($this->getCartaoDigFim());
        $this->MovimentacoesPix->setNumeroCap($this->getNumeroCap());
        $this->MovimentacoesPix->setValorTitulo($this->getValorTitulo());

        $resultado = $this->MovimentacoesPix->inserir();

        $this->setId($this->MovimentacoesPix->getId());

        $this->setRetorno($this->MovimentacoesPix->getRetorno());
        $this->setMensagemRetorno($this->MovimentacoesPix->getMensagemRetorno());

        return $resultado;
    }

    public function alterarDadosContaPorIdMovimentacoes()
    {
        $this->MovimentacoesPix->setIdMovimentacoes($this->getIdMovimentacoes());
        $this->MovimentacoesPix->setCodigoInstituicao($this->getCodigoInstituicao());
        $this->MovimentacoesPix->setNomeInstituicao($this->getNomeInstituicao());
        $this->MovimentacoesPix->setAgencia($this->getAgencia());
        $this->MovimentacoesPix->setConta($this->getConta());
        $this->MovimentacoesPix->setTipoConta($this->getTipoConta());
        $this->MovimentacoesPix->setNome($this->getNome());
        $this->MovimentacoesPix->setDocumento($this->getDocumento());
        $this->MovimentacoesPix->setCelular(preg_replace('/[^0-9]/', '', $this->getCelular()));

        $resultado = $this->MovimentacoesPix->alterarDadosContaPorIdMovimentacoes();

        return $resultado;
    }

    public function gravaPagamento()
    {
        $this->MovimentacoesPix->setId($this->getId());
        $this->MovimentacoesPix->setPaymentId($this->getPaymentId());
        $this->MovimentacoesPix->setEndToEnd($this->getEndToEnd());
        $resultado = $this->MovimentacoesPix->gravaPagamento();

        $this->setRetorno($this->MovimentacoesPix->getRetorno());
        $this->setMensagemRetorno($this->MovimentacoesPix->getMensagemRetorno());

        return $resultado;
    }

    public function gravaIPUser()
    {
        $this->MovimentacoesPix->setId($this->getId());
        $this->MovimentacoesPix->setIpUser($this->getIpUser());
        $resultado = $this->MovimentacoesPix->gravaIPUser();

        $this->setRetorno($this->MovimentacoesPix->getRetorno());
        $this->setMensagemRetorno($this->MovimentacoesPix->getMensagemRetorno());

        return $resultado;
    }

    public function gravaDocClickSign()
    {
        $this->MovimentacoesPix->setId($this->getId());
        $this->MovimentacoesPix->setIdDocumento($this->getIdDocumento());
        $this->MovimentacoesPix->setIdAssinatura($this->getIdAssinatura());
        $resultado = $this->MovimentacoesPix->gravaDocClickSign();

        $this->setRetorno($this->MovimentacoesPix->getRetorno());
        $this->setMensagemRetorno($this->MovimentacoesPix->getMensagemRetorno());

        return $resultado;
    }

    /**
     * @return mixed
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @param mixed $id
     */
    public function setId($id): void
    {
        $this->id = $id;
    }

    /**
     * @return mixed
     */
    public function getIdMovimentacoes()
    {
        return $this->id_movimentacoes;
    }

    /**
     * @param mixed $id_movimentacoes
     */
    public function setIdMovimentacoes($id_movimentacoes): void
    {
        $this->id_movimentacoes = $id_movimentacoes;
    }

    /**
     * @return mixed
     */
    public function getChave()
    {
        return $this->chave;
    }

    /**
     * @param mixed $chave
     */
    public function setChave($chave): void
    {
        $this->chave = $chave;
    }

    /**
     * @return mixed
     */
    public function getTipo()
    {
        return $this->tipo;
    }

    /**
     * @param mixed $tipo
     */
    public function setTipo($tipo): void
    {
        $this->tipo = $tipo;
    }

    /**
     * @return mixed
     */
    public function getCodigoInstituicao()
    {
        return $this->codigo_instituicao;
    }

    /**
     * @param mixed $codigo_instituicao
     */
    public function setCodigoInstituicao($codigo_instituicao): void
    {
        $this->codigo_instituicao = $codigo_instituicao;
    }

    /**
     * @return mixed
     */
    public function getNomeInstituicao()
    {
        return $this->nome_instituicao;
    }

    /**
     * @param mixed $nome_instituicao
     */
    public function setNomeInstituicao($nome_instituicao): void
    {
        $this->nome_instituicao = $nome_instituicao;
    }

    /**
     * @return mixed
     */
    public function getAgencia()
    {
        return $this->agencia;
    }

    /**
     * @param mixed $agencia
     */
    public function setAgencia($agencia): void
    {
        $this->agencia = $agencia;
    }

    /**
     * @return mixed
     */
    public function getConta()
    {
        return $this->conta;
    }

    /**
     * @param mixed $conta
     */
    public function setConta($conta): void
    {
        $this->conta = $conta;
    }

    /**
     * @return mixed
     */
    public function getTipoConta()
    {
        return $this->tipo_conta;
    }

    /**
     * @param mixed $tipo_conta
     */
    public function setTipoConta($tipo_conta): void
    {
        $this->tipo_conta = $tipo_conta;
    }

    /**
     * @return mixed
     */
    public function getNome()
    {
        return $this->nome;
    }

    /**
     * @param mixed $nome
     */
    public function setNome($nome): void
    {
        $this->nome = $nome;
    }

    /**
     * @return mixed
     */
    public function getDocumento()
    {
        return $this->documento;
    }

    /**
     * @param mixed $documento
     */
    public function setDocumento($documento): void
    {
        $this->documento = $documento;
    }

    /**
     * @return mixed
     */
    public function getValor()
    {
        return $this->valor;
    }

    /**
     * @param mixed $valor
     */
    public function setValor($valor): void
    {
        $this->valor = $valor;
    }

    /**
     * @return mixed
     */
    public function getIdentificador()
    {
        return $this->identificador;
    }

    /**
     * @param mixed $identificador
     */
    public function setIdentificador($identificador): void
    {
        $this->identificador = $identificador;
    }

    /**
     * @return mixed
     */
    public function getDescricao()
    {
        return $this->descricao;
    }

    /**
     * @param mixed $descricao
     */
    public function setDescricao($descricao): void
    {
        $this->descricao = $descricao;
    }

    /**
     * @return mixed
     */
    public function getDataPagamento()
    {
        return $this->data_pagamento;
    }

    /**
     * @param mixed $data_pagamento
     */
    public function setDataPagamento($data_pagamento): void
    {
        $this->data_pagamento = $data_pagamento;
    }

    /**
     * @return mixed
     */
    public function getPaymentId()
    {
        return $this->payment_id;
    }

    /**
     * @param mixed $payment_id
     */
    public function setPaymentId($payment_id): void
    {
        $this->payment_id = $payment_id;
    }

    /**
     * @return mixed
     */
    public function getEndToEnd()
    {
        return $this->end_to_end;
    }

    /**
     * @param mixed $end_to_end
     */
    public function setEndToEnd($end_to_end): void
    {
        $this->end_to_end = $end_to_end;
    }

    /**
     * @return mixed
     */
    public function getRetorno()
    {
        return $this->retorno;
    }

    /**
     * @param mixed $retorno
     */
    public function setRetorno($retorno): void
    {
        $this->retorno = $retorno;
    }

    /**
     * @return mixed
     */
    public function getMensagemRetorno()
    {
        return $this->mensagemRetorno;
    }

    /**
     * @param mixed $mensagemRetorno
     */
    public function setMensagemRetorno($mensagemRetorno): void
    {
        $this->mensagemRetorno = $mensagemRetorno;
    }

    /**
     * @return mixed
     */
    public function getCelular()
    {
        return $this->celular;
    }

    /**
     * @param mixed $celular
     */
    public function setCelular($celular): void
    {
        $this->celular = $celular;
    }

    /**
     * @return mixed
     */
    public function getEmail()
    {
        return $this->email;
    }

    /**
     * @param mixed $email
     */
    public function setEmail($email): void
    {
        $this->email = $email;
    }

    /**
     * @return mixed
     */
    public function getCartaoDigIni()
    {
        return $this->cartaoDigIni;
    }

    /**
     * @param mixed $cartaoDigIni
     */
    public function setCartaoDigIni($cartaoDigIni): void
    {
        $this->cartaoDigIni = $cartaoDigIni;
    }

    /**
     * @return mixed
     */
    public function getCartaoDigFim()
    {
        return $this->cartaoDigFim;
    }

    /**
     * @param mixed $cartaoDigFim
     */
    public function setCartaoDigFim($cartaoDigFim): void
    {
        $this->cartaoDigFim = $cartaoDigFim;
    }

    /**
     * @return mixed
     */
    public function getIpUser()
    {
        return $this->ipUser;
    }

    /**
     * @param mixed $ipUser
     */
    public function setIpUser($ipUser): void
    {
        $this->ipUser = $ipUser;
    }

    /**
     * @return mixed
     */
    public function getNumeroCap()
    {
        return $this->numeroCap;
    }

    /**
     * @param mixed $numeroCap
     */
    public function setNumeroCap($numeroCap): void
    {
        $this->numeroCap = $numeroCap;
    }

    /**
     * @return mixed
     */
    public function getIdDocumento()
    {
        return $this->idDocumento;
    }

    /**
     * @param mixed $idDocumento
     */
    public function setIdDocumento($idDocumento): void
    {
        $this->idDocumento = $idDocumento;
    }

    /**
     * @return mixed
     */
    public function getIdAssinatura()
    {
        return $this->idAssinatura;
    }

    /**
     * @param mixed $idAssinatura
     */
    public function setIdAssinatura($idAssinatura): void
    {
        $this->idAssinatura = $idAssinatura;
    }

    /**
     * @return mixed
     */
    public function getValorTitulo()
    {
        return $this->valorTitulo;
    }

    /**
     * @param mixed $valorTitulo
     */
    public function setValorTitulo($valorTitulo): void
    {
        $this->valorTitulo = $valorTitulo;
    }


}