<?php

class Seguro_Model_BeneficiariosPendencias extends Agro_Db_Table_Abstract {
	protected $_schema = 'seguro';
	protected $_name = 'beneficiarios_pendencias';
	protected $_primary = 'id';
	public $_order = 'id asc';

	public function save($data) {
		try {
			$Row = $this->createRow();

			$Row->ds_descricao    = $data['ds_descricao'];
			$Row->id_beneficiario = $data['id_beneficiario'];

			return $Row->save();
		} catch (Exception $e) {
		    $this->setMessage($e->getMessage());
			return false;
		}
	}

	public function getPendencias($idBeneficiario) {
		$select = $this->select()->setIntegrityCheck(false);
		$select->from(array('bp' => 'seguro.beneficiarios_pendencias'), array('ds_descricao', 'fl_lido', "to_char(bp.dt_criacao, 'dd/mm/yyyy') as dt_criacao"));
		$select->join(array('su' => 'sistema.usuarios'), 'bp.id_usuario_criacao = su.id', 'ds_nome_usuario');

		$user = Zend_Auth::getInstance()->getIdentity();

		if (in_array($user->tp_usuario, [Sistema_Model_Usuarios::TIPO_USUARIO_CORRETOR, Sistema_Model_Usuarios::TIPO_USUARIO_PREPOSTO])) {

			$select->joinLeft(array('sc' => 'sistema.corretores'), 'sc.id_usuario = su.id', null);
			$select->joinLeft(array('sp' => 'sistema.prepostos'), 'sp.id_usuario = su.id', null);
			$select->joinLeft(array('sf' => 'sistema.funcionarios'), 'sf.id_usuario = su.id', null);

			$modelCorretor = new Sistema_Model_Corretores();
			$idCorretor = $modelCorretor->findByUser($user->id)->id;

			if (empty($idCorretor)) {
				$modelPreposto = new Sistema_Model_Prepostos();
				$corretor = $modelPreposto->getCorretorByUsuario($user->id);
				$idCorretor = $corretor->id; 
			}

			$idEmpresa = Sistema_Model_Empresas::AGROBRASIL;
			$select->where("(sc.id = {$idCorretor} OR sp.id_corretor = {$idCorretor} OR sf.id_empresa = {$idEmpresa})");
		}

		$select->where('bp.id_beneficiario = ?', $idBeneficiario);
		$select->order('bp.dt_criacao desc');
		
		$Row = $this->fetchAll($select)->toArray();
		return $Row;
	}
}
