<?php

class Sistema_Model_ModeloPreviaGrupos extends Agro_Db_Table_Abstract {
	public $_pairs = array('key' => 'id', 'field' => 'id_modelos_laudos_previas', 'field' => 'ds_ordem', 'field' => 'ds_nome_grupo');
	protected $_schema = 'seguro';
	protected $_name = 'modelos_laudos_previas_grupos';
	protected $_primary = 'id';
	public $_order = 'ds_ordem';
	
	public function save(array $data) {
		$Row = $this->getRow($data['id']);
		$Row->id_modelos_laudos_previas = $data['id_modelos_laudos_previas'];
		//print_r($data['ds_ordem']);die;
		if ($data['ds_ordem']== '1'){
			$Row->ds_ordem = $this->getOrder($data['id_modelos_laudos_previas']);	
		}else{
			$Row->ds_ordem = $data['ds_ordem'];	
		}
		$Row->ds_nome_grupo = $data['ds_nome_grupo'];
		
		return $Row->save();
	}
	
	public function reOrder($id, $type) {
		try {
			$Atual = $this->find($id)->current();
			$operator = ($type == 'up' ? '<' : '>');
			$order = ($type == 'up' ? 'desc' : 'asc');
			
			$select = $this->select()->distinct(true);
			$select->from(array('a' => 'seguro.modelos_laudos_previas_grupos'));
			
	
			$select->where("ds_ordem $operator ?", $Atual->ds_ordem);
			$select->order("ds_ordem $order");
			$select->limit(1);
			$Row = $this->fetchRow($select);
			
			$tmp = $Atual->ds_ordem;
			$Atual->ds_ordem = $Row->ds_ordem;
			$Row->ds_ordem = $tmp;
			
			$Atual->save();
			$Row->save();
			
			return true;
		} catch (Exception $e) {
			return false;
		}
	}
	
	private function getOrder($id_modelos_laudos_previas){
		return ($this->fetchAll("id_modelos_laudos_previas = $id_modelos_laudos_previas")->count())+100;
	}
	
}
