<?php

class Atendimento_Model_ContatoEnderecos extends Agro_Db_Table_Abstract {
	protected $_schema = 'atendimento';
	protected $_name = 'contatos_enderecos';
	protected $_primary = 'id';

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

		//Caso ja exista um endereco principal altera o novo para falso
		if (($data['id_contato'] == $Row->id_contato) && $data['fl_principal'] == 1) {
			$this->update(array('id_usuario_alteracao' => Zend_Auth::getInstance()->getIdentity()->id, 'dt_alteracao' => 'now()', 'fl_principal' => 0), 'id_contato = '.$data["id_contato"]);
		}

		$Row->id_contato = $data['id_contato'];
		$Row->id_municipio = $data['id_municipio'];
		$Row->ds_endereco_cep = $data['ds_endereco_cep'];
		$Row->ds_endereco_bairro = $data['ds_endereco_bairro'];
		$Row->ds_endereco_rua = $data['ds_endereco_rua'];
		$Row->ds_endereco_nro = $data['ds_endereco_nro'];
		$Row->ds_endereco_complemento = $data['ds_endereco_complemento'];
		$Row->fl_principal = ($data['fl_principal'] ? 1 : 0);
		return $Row->save();
	}

	public function getEnderecosContato($id) {
		$select = $this->getData(array());

		$select->where("id_contato = $id");

		$ret = $this->_db->fetchAll($select);
		return $ret;
	}

	public function getData($where) {
		$select = $this->select();
		$select->setIntegrityCheck(false);
		$select->from(array('ce' => 'atendimento.contatos_enderecos'));
		$select->join(array('m' => 'sistema.municipios'), 'ce.id_municipio = m.id', 'ds_nome_municipio');
		$select->join(array('e' => 'sistema.estados'), 'm.id_estado = e.id', array('ds_nome_estado', 'ds_sigla'));
		$select->order(array('ce.fl_principal desc','ce.ds_endereco_cep'));

		if (is_array($where)) {
			foreach ($where as $clause) {
				$field = $clause['field'];
				$operator = $clause['operator'];
				$value = $clause['value'];

				$select->where("$field $operator ?", $value);
			}
		} elseif ($where != '') {
			$select->where($where);
		}

		return $select;
	}
}