<?php

class Atendimento_ContatoController extends Agro_Controller_Action {

	public $_backAfterSave = false;
	
	public function init() {
		$this->view->title = 'Atendimento » Contatos';
		$this->view->orderby = $this->getRequest()->getParam('o');
		$this->view->orderDirection = $this->getRequest()->getParam('s');
	}
			
	public function getForm() {
		return new Atendimento_Form_Contato();
	}
	
	public function getModel() {
		return new Atendimento_Model_Contato();
	}
	
	public function viewAction() {
		$this->getHelper('layout')->setLayout('popup');
		$Model = $this->getModel();
		$this->view->title .= ' » Visualização';
		
		$this->view->data = $Model->getDadosContato($this->getFilter());
		
		$ModelTelefone = new Atendimento_Model_ContatoTelefones();
		$ModelEndereco = new Atendimento_Model_ContatoEnderecos();
		$ModelObservacao = new Atendimento_Model_ContatoObservacoes();
		
		$this->view->observacoes = $ModelObservacao->getDadosObservacoes($this->view->data['id']);
		$this->view->telefones = $ModelTelefone->getTelefones($this->view->data['id']);
		$this->view->enderecos = $ModelEndereco->getEnderecosContato($this->view->data['id']);
	}
	
	public function getFilter() {
		$where = array();
		
		if ($this->getRequest()->getParam('ds_nome_contato')) {
			$where[] = array(
				'field' => 'ds_nome_contato',
				'operator' => 'ilike',
				'value' => '%'.$this->getRequest()->getParam('ds_nome_contato').'%'
			);
		}
		
		if ($this->getRequest()->getParam('ds_profissao')) {
			$where[] = array(
				'field' => 'ds_profissao',
				'operator' => 'ilike',
				'value' => '%'.$this->getRequest()->getParam('ds_profissao').'%'
			);
		}
		
		if($this->getRequest()->getParam('id_municipio_search')) {
			$where['id_municipio'] = $this->getRequest()->getParam('id_municipio_search');
		} else { 
			if ($this->getRequest()->getParam('id_estado_search')) {
				$where['id_estado'] = $this->getRequest()->getParam('id_estado_search');
			}
		}
		
		if ($this->getRequest()->getParam('fl_ativo')) {
			$where[] = array(
				'field' => 'c.fl_ativo',
				'operator' => '=',
				'value' => $this->getRequest()->getParam('fl_ativo')
			);
		}
		
		return $where;
	}
	
	public function afterSave($id) {
		$Model = $this->getModel();
		$Row = $Model->find($id)->current()->toArray();
		$this->view->form->populate($Row);
	}
	
	
	
	public function enderecosAction() {
		$CorretoresEnderecos = new Sistema_Model_CorretoresEnderecos();
		$Corretor = new Sistema_Model_Corretores();
		$row = $Corretor->getViewId($this->getRequest()->getParam('id'));
		$this->view->title = "Gerência de Corretores » {$row['ds_nome_corretor']} » Endereços";
		$this->view->back = '/sistema/corretor';
		$this->view->form = new Sistema_Form_CorretorEndereco();
		
		if ($this->getRequest()->isPost() && count($this->getRequest()->getPost())) {
			$this->saveEnderecos($this->getRequest()->getPost());
		}
		
		$where[] = array(
			'field' => 'id_corretor',
			'operator' => '=',
			'value' => $this->getRequest()->getParam('id')
		);
		
		$this->view->paginator = $CorretoresEnderecos->fetchAllPaginator($where, $this->getPageCache());
	}
	
	public function geraxlsAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		$dados = $this->getRequest()->getParams();
		$Model = $this->getModel();
		
		$ret = $Model->getDadosXls();
		require_once(APPLICATION_PATH . "/../library/Agro/xls/PhpSimpleXlsGen.php");
		
		$myxls = new PhpSimpleXlsGen();
		$myxls->totalcol = 7;
		//( ID USUARIO | NOME FANTASIA | NOME USUARIO |
		// MUNICIPIO | UF | COD SEGURADORA | ATIVO
		
		$myxls->InsertText(utf8_decode('Código'));
		$myxls->InsertText('Nome');
		$myxls->InsertText(utf8_decode('Usuário'));
		$myxls->InsertText(utf8_decode('Municipio'));
		$myxls->InsertText(utf8_decode('Estado'));
		$myxls->InsertText(utf8_decode('Código Seguradora'));
		$myxls->InsertText('Ativo');
		foreach($ret as $linha) {
			$myxls->InsertText( utf8_decode($linha['id']) . ' ');
			$myxls->InsertText( utf8_decode($linha['ds_nome_corretor']) . ' ');
			$myxls->InsertText( utf8_decode($linha['ds_nome_usuario']) . ' ');
			$myxls->InsertText( utf8_decode($linha['ds_nome_municipio']) . ' ');
			$myxls->InsertText( utf8_decode($linha['ds_sigla']) . ' ');
			$myxls->InsertText( utf8_decode($linha['cd_corretor_seguradora']) . ' ');
			
			$myxls->InsertText( $linha['fl_ativo'] ? 'Ativo' : 'Inativo' );
		}
		
		$myxls->SendFile();
	}
	
	public function listtelefoneAction() {
		$this->getHelper('layout')->disableLayout();
		$Model = new Atendimento_Model_ContatoTelefones();
		$this->view->telefones = $Model->getTelefones($this->getRequest()->getParam('id'));
		
	}
	

	
	public function salvatelefoneAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		$result = array();
		$result['status'] = true;
		$Model = new Atendimento_Model_ContatoTelefones();
		$dados = $this->getRequest()->getParams();
		if($Model->save($dados)) {
			$result['message'] = 'Telefone salvo com sucesso.';
		} else {
			$result['message'] = 'Não foi possível salvar o Telefone.';
			$result['status'] = false;
		}

		$this->getResponse()->setBody(Zend_Json::encode($result));
	}
	
	public function deletetelefoneAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		$result = array();
		$result['status'] = true;
		$Model = new Atendimento_Model_ContatoTelefones();
		$dados = $this->getRequest()->getParams();
		if($Model->delete($dados['id'])) {
			$result['message'] = 'Telefone excluido com sucesso.';
			$result['execute'] = 'afterDelete()';
		} else {
			$result['message'] = 'Não foi possível remover o Telefone.';
			$result['status'] = false;
		}

		$this->getResponse()->setBody(Zend_Json::encode($result));
	}
	
	public function listobservacaoAction() {
		$this->getHelper('layout')->disableLayout();
		$Model = new Atendimento_Model_ContatoObservacoes();
		
		$this->view->observacoes = $Model->getObservacoesContato($this->getRequest()->getParam('id'));
	}
	
	
	public function salvaobservacaoAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		$result = array();
		$result['status'] = true;
		$Model = new Atendimento_Model_ContatoObservacoes();
		$dados = $this->getRequest()->getParams();
		if($Model->save($dados)) {
			$result['message'] = 'Observação salva com sucesso.';
		} else {
			$result['message'] = 'Não foi possível salvar a Observação.';
			$result['status'] = false;
		}

		$this->getResponse()->setBody(Zend_Json::encode($result));
	}
	
	public function deleteobservacaoAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		$result = array();
		$result['status'] = true;
		$Model = new Atendimento_Model_ContatoObservacoes();
		$dados = $this->getRequest()->getParams();
		if($Model->delete($dados['id'])) {
			$result['message'] = 'Observação excluido com sucesso.';
			$result['execute'] = 'afterDelete()';
		} else {
			$result['message'] = 'Não foi possível remover a Observação.';
			$result['status'] = false;
		}

		$this->getResponse()->setBody(Zend_Json::encode($result));
	}
	
	public function listenderecoAction() {
		$this->getHelper('layout')->disableLayout();
		$Model = new Atendimento_Model_ContatoEnderecos();
		
		$this->view->enderecos = $Model->getEnderecosContato($this->getRequest()->getParam('id'));
	}
	
	public function salvaenderecoAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		$result = array();
		$result['status'] = true;
		$Model = new Atendimento_Model_ContatoEnderecos();
		$dados = $this->getRequest()->getParams();
		if($Model->save($dados)) {
			$result['message'] = 'Endereço salvo com sucesso.';
		} else {
			$result['message'] = 'Não foi possível salvar o Endereço.';
			$result['status'] = false;
		}

		$this->getResponse()->setBody(Zend_Json::encode($result));
	}
	
	public function deleteenderecoAction() {
		$this->getHelper('ViewRenderer')->setNoRender();
		$this->getHelper('layout')->disableLayout();
		$result = array();
		$result['status'] = true;
		$Model = new Atendimento_Model_ContatoEnderecos();
		$dados = $this->getRequest()->getParams();
		if($Model->delete($dados['id'])) {
			$result['message'] = 'Endereço excluido com sucesso.';
			$result['execute'] = 'afterDelete()';
		} else {
			$result['message'] = 'Não foi possível remover o Endereço.';
			$result['status'] = false;
		}

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

	
}