<?php

class Solicitacao_Model_TarefaAndamento extends Agro_Db_Table_Abstract {
	protected $_name = 'tarefa_andamento';
	protected $_schema = 'solicitacao';
	protected $_primary = 'id';
	
	public function add($values, $file) {
		$Row = $this->createRow();
		
		$Row->id_tarefa = $values['id_tarefa'];
		$Row->ds_descricao = $values['ds_descricao'];
		//$Row->ds_arquivo_original = $file['old_name'];
		//$Row->ds_arquivo_name = $file['new_name'];
		
		$saved = $Row->save();

		if ($saved) {
			$Log = new Solicitacao_Model_TarefaLog();
			$Funcionario = new Sistema_Model_Funcionarios();
			$Model = new Solicitacao_Model_Tarefa();
			
			$Tarefa = $Model->find($Row->id_tarefa)->current();
			
			if($Tarefa->id_status != $values['id_status']){
				$Tarefa->id_status = $values['id_status'];
				$msgStatus = "<ul><li>Alterou o Status para ".$Tarefa->status().".</li></ul>";
			}
			
			$Tarefa->fl_lido = 0;
			$Tarefa->save();
			
			$CriadorAndamento = $Funcionario->getNomeUsuarioByIdUsuario($Row->id_usuario_criacao);
			
			$destinatarios = array();
			$destinatarios[] = $Tarefa->id_usuario_criacao;
			
			if ($Row->id_usuario_criacao != $Tarefa->id_executor) {
				$destinatarios[] = $Tarefa->id_executor;
			}

			$funcionarioCriacao = $Funcionario->getFuncionarioByIdUsuario($Tarefa->id_usuario_criacao);

			//quando for aberta pelo atendimento ou técnica, envia email em cópia para a karina
			if (in_array($funcionarioCriacao->id_departamento, array(20, 26))) { // atendimento e técnica
				$destinatarios[] = 1032;//karina silva
				$destinatarios[] = 2881;//henrique
			}
			
			$msg = "<b>".$Tarefa->ds_titulo."</b><br><br>";
			$msg.= "<u>".$CriadorAndamento."</u><br/>";
			$msg.= "<ul><li>Adicionou um andamento: ".$Row->ds_descricao."</li></ul>";
			$msg.= $msgStatus;
			
			$ModelDepartamento = new Sistema_Model_Departamentos();
			$Departamento = $ModelDepartamento->find($Tarefa->id_departamento)->current();

			$Responsavel = $Departamento->responsavel();
			
			Agro_Util::setNotificacao("Alteração na solicitação N°: {$Tarefa->id}", $msg, $Responsavel["ds_email"], $destinatarios);
                        
                        $Arquivos = new Solicitacao_Model_TarefaAndamentoArquivos();
                        if ($file['new_name']) {
                            $data['id_andamento'] = $saved;
                            $data['ds_nome_arquivo'] = $file['new_name'];
                            $Arquivos->save($data);                            
                        } else {
                            foreach($file as $f) { 
                                $data['id_andamento'] = $saved;
                                $data['ds_nome_arquivo'] = $f['new_name'];
                                $Arquivos->save($data);
                            }
                        }
				
			$Log->insert(array(
				"id_tarefa" => $Tarefa->id,
				"ds_descricao" => $msg
				)
			);
		}
		
		return $saved;
	}
}