<?php

class Seguro_InformacoesbancariasController extends Agro_Controller_Action {

	public function loadAction(){
		$this->getHelper('layout')->disableLayout();
		$data['id_proposta'] = $this->getRequest()->getParam('id_proposta');
		$data['id_processo'] = $this->getRequest()->getParam('id_processo');
		
		$this->view->data = $data;

		$ModelProcesso = new Sinistro2_Model_Processos();
		$this->view->processo = $ModelProcesso->find($data['id_processo'])->current();
		$this->view->proposta = $this->view->processo->proposta();
		$this->view->proponente = $this->view->processo->proponente();
		
		$Beneficiarios = new Seguro_Model_PropostasBeneficiarios();
		$this->view->data['beneficiarios'] = $Beneficiarios->getBeneficiarios($data['id_proposta']);
		
		$Info = new Seguro_Model_InformacoesBancarias();
		$this->view->informacoes_bancarias = $Info->getInformacoesBancarias($data['id_proposta']);
				
	}
		
    public function editinformacoesAction() {
        $this->isAjax();

        $Model = new Seguro_Model_InformacoesBancarias();
        $informacoesBancariasPropostasModel = new Seguro_Model_InformacoesBancariasPropostas();
        $informacoesBancariasModel = new Sistema_Model_InformacoesBancarias();
        
        $aux = $informacoesBancariasModel
            ->getInformacoesBancariasByProposta($this->getRequest()->getParam('id_proposta'));

        $informacaoBancaria = $informacoesBancariasModel->find($aux['id']);
        $informacaoBancariaProposta = $informacoesBancariasPropostasModel->find($aux['id_informacao_bancaria_proposta']);
        
        $arrInformacaoBancaria = $informacaoBancaria->toArray()[0] ?? [];
        $arrInformacaoBancariaProposta = $informacaoBancariaProposta->toArray()[0] ?? [];
        
        $arrInformacaoBancaria['ds_tipo_conta'] = $this->getRequest()->getParam('ds_tipo_conta');
        
        if (empty(trim($arrInformacaoBancaria['ds_tipo_conta']))) {
            $this->getResponse()->setBody("Necessário informar o tipo de conta.");
            return;
        }

        if ($this->getRequest()->getParam('id')) {
            $InfoRow = $Model->find($this->getRequest()->getParam('id'))->current();
        } else {
            $InfoRow = $Model->createRow();
        }

        $InfoRow->cpf_cnpj = $this->getRequest()->getParam('cpf_cnpj');
        $InfoRow->id_proposta = $this->getRequest()->getParam('id_proposta');
        $InfoRow->id_banco = $this->getRequest()->getParam('id_banco') ?: null;
        $InfoRow->nu_conta_corrente = $this->getRequest()->getParam('nu_conta_corrente');
        $InfoRow->nu_digito_conta_corrente = $this->getRequest()->getParam('nu_digito_conta_corrente');
        $InfoRow->nu_agencia = $this->getRequest()->getParam('nu_agencia');
        $InfoRow->nu_digito_agencia = $this->getRequest()->getParam('nu_digito_agencia');
        $InfoRow->fl_conta_conjunta = $this->getRequest()->getParam('fl_conta_conjunta') ? 'true' : 'false';
        $InfoRow->ds_tipo_conta = trim($this->getRequest()->getParam('ds_tipo_conta'));
        $InfoRow->id_forma_pagamento = $this->getRequest()->getParam('id_forma_pagamento');

        $InfoRow->save();

        if (!empty($arrInformacaoBancaria)) {
            $informacoesBancariasModel->save($arrInformacaoBancaria);
        }

        if (!empty($arrInformacaoBancariaProposta)) {
            $arrInformacaoBancariaProposta['fl_conta_conjunta'] = $this->getRequest()->getParam('fl_conta_conjunta') ?? null;
            $informacoesBancariasPropostasModel->save($arrInformacaoBancariaProposta);
        }

        $this->getResponse()->setBody(Zend_Json::encode([]));
    }

    public function formAction() {
        $this->isAjax(true);
        $Model = new Seguro_Model_InformacoesBancarias();
        $i=0;

        if ($this->getRequest()->getParam('id')) {
            $info = $Model->getInformacoesBancarias($this->getRequest()->getParam('id_proposta'), $this->getRequest()->getParam('id'));
            
            $this->view->id_processo = $this->getRequest()->getParam('id_processo');
            $this->view->id = $this->getRequest()->getParam('id');
            $this->view->id_proposta = $this->getRequest()->getParam('id_proposta');
            $this->view->cpf_cnpj = $info[$i]['cpf_cnpj'];
            $this->view->id_banco = $info[$i]['id_banco'];
            $this->view->nu_conta_corrente = $info[$i]['nu_conta_corrente'];
            $this->view->nu_digito_conta_corrente = $info[$i]['nu_digito_conta_corrente'];
            $this->view->nu_agencia = $info[$i]['nu_agencia'];
            $this->view->nu_digito_agencia = $info[$i]['nu_digito_agencia'];
            $this->view->id_forma_pagamento = $info[$i]['id_forma_pagamento'];
            $this->view->ds_nome = $info[$i]['ds_nome'];
            $this->view->ds_nome_banco = $info[$i]['ds_nome_banco'];
            $this->view->fl_conta_conjunta = $info[$i]['info_fl_conta_conjunta'];
            $this->view->ds_tipo_conta = $info[$i]['info_ds_tipo_conta'];
        } else {
            $info = $Model->getInformacoesBancarias($this->getRequest()->getParam('id_proposta'));
            foreach ( $info as $dado ) {

                if ($i == $this->getRequest()->getParam('ind')){
                    $this->view->id_processo = $this->getRequest()->getParam('id_processo');
                    $this->view->id = $this->getRequest()->getParam('id');
                    $this->view->id_proposta = $this->getRequest()->getParam('id_proposta');
                    $this->view->cpf_cnpj = $dado['cpf_cnpj'];
                    $this->view->id_banco = $dado['id_banco'];
                    $this->view->nu_conta_corrente = $dado['nu_conta_corrente'];
                    $this->view->nu_digito_conta_corrente = $dado['nu_digito_conta_corrente'];
                    $this->view->nu_agencia = $dado['nu_agencia'];
                    $this->view->nu_digito_agencia = $dado['nu_digito_agencia'];
                    $this->view->id_forma_pagamento = $dado['id_forma_pagamento'];
                    $this->view->ds_nome = $dado['ds_nome'];
                    $this->view->ds_nome_banco = $dado['ds_nome_banco'];
                    $this->view->fl_conta_conjunta = $dado['info_fl_conta_conjunta'];
                    $this->view->ds_tipo_conta = $dado['info_ds_tipo_conta'];
                    break;
                }
                $i++;
            }
        }
    }
}
