<?php

class Sinistro_Model_Gruposvistoria extends Agro_Db_Table_Abstract {
	protected $_rowClass = 'Sinistro_Model_Row_Grupovistoria';
	protected $_name = 'cobranca_grupos_vistoria';
	public $_order = 'ds_nome_grupo_vistoria';
	protected $_schema = 'sinistro';
	protected $_primary = 'id';

	public $_columnExcel = array(
		'id' => 'Id',
    	'ds_nome_grupo_vistoria' => 'Nome',
    	'dt_inicio_grupo' => 'Data Início',
	    'dt_expira_grupo' => 'Data Expiração'
	);

	public function save(array $data) {
		$Row = $this->getRow($data['id']);

		$Row->vl_custo_quilometragem = Agro_Util::formatCurrencyDb($data['vl_custo_quilometragem']);
		$Row->dt_expira_grupo = Agro_Util::formatDate($data['dt_expira_grupo'], Zend_Date::W3C);
		$Row->dt_inicio_grupo = Agro_Util::formatDate($data['dt_inicio_grupo'], Zend_Date::W3C);
		$Row->ds_nome_grupo_vistoria = $data['ds_nome_grupo_vistoria'];
		$Row->ds_chave = $data['ds_chave'];

		return $Row->save();
	}

	public function culturas($id) {
		$Select = $this->select()->setIntegrityCheck(false);
		$Select->from('sinistro.cobranca_grupos_vistoria_culturas', array('id_cultura', 'id_cultura'));
		$Select->where("id_grupo_vistoria = ?", $id);

		return $this->getDefaultAdapter()->fetchPairs($Select);
	}

	public function relacionarCulturas($params) {
		if ($params['id'] && is_array($params['id_cultura'])) {
			$this->getDefaultAdapter()->beginTransaction();

			try {
				foreach ($params['id_cultura'] as $idCultura) {
					$this->getDefaultAdapter()->insert('sinistro.cobranca_grupos_vistoria_culturas', array(
						'id_grupo_vistoria' => $params['id'],
						'id_cultura' => $idCultura,
						'id_usuario_criacao' => Zend_Auth::getInstance()->getIdentity()->id
					));
				}

				$this->getDefaultAdapter()->commit();
				return true;
			} catch (Exception $e) {
				$this->getDefaultAdapter()->rollBack();
				return false;
			}
		}

		return false;
	}
	
	public function relacionarEstados($params) {
		if ($params['id'] && is_array($params['id_estado'])) {
			$this->getDefaultAdapter()->beginTransaction();
	
			try {
				foreach ($params['id_estado'] as $idEstado) {
					$this->getDefaultAdapter()->insert('sinistro.cobranca_grupos_vistoria_estados', array(
							'id_grupo_vistoria' => $params['id'],
							'id_estado' => $idEstado,
							'id_usuario_criacao' => Zend_Auth::getInstance()->getIdentity()->id
					));
				}
	
				$this->getDefaultAdapter()->commit();
				return true;
			} catch (Exception $e) {
				$this->getDefaultAdapter()->rollBack();
				return false;
			}
		}
	
		return false;
	}
		
}