<?

class Sinistro2_CronometroregulacaoController extends Agro_Controller_Action {

	public function init() {
		$this->view->title = 'Sinistro » Avisos » Encerramento de Colheita';
		$this->user = Zend_Auth::getInstance()->getIdentity();
	}

	public function getModel() {
		return new Sinistro2_Model_CronometroRegulacao();
	}

	public function loadAction(){
		$this->getHelper('layout')->setLayout('popup');
		$User 						= Zend_Auth::getInstance()->getIdentity();
		$isFuncionarioAgro 			= Sistema_Model_Usuarios::usuarioLogadoFuncionarioAgro();
        $idAviso 					= $this->getRequest()->getParam('id_aviso');
        $model 						= $this->getModel();
        $cronometro 				= $model->getCronometroByAvisoId($idAviso, false);
		if($cronometro){
			$this->view->cronometro 	= $cronometro;
			$this->view->historico	 	= $this->getHistoricoByIdCronometro($cronometro['id']);
			$statusCronometro 			= $model->getComboStatus();

			foreach ($statusCronometro as &$item) {
    			if (strtoupper($item["ds_chave"]) === "ATIVO") {
        			$item["ds_label"] = "Prazo retomado";
    			} elseif (strtoupper($item["ds_chave"]) === "SUSPENSO") {
        			$item["ds_label"] = "Prazo suspenso";
    			}
			}
			$statusCronometro 			= array_filter($statusCronometro, function($item) {
    			return in_array($item["ds_chave"], ["ATIVO", "SUSPENSO"]);
			});
	
			$this->view->status_cronometro = $statusCronometro;
		}

	}

	public function alterarstatusAction(){
		$User = Zend_Auth::getInstance()->getIdentity();
		$this->isAjax();
		
		$return = [
			'message' => 'Status alterado com sucesso.',
			'error' => false
		];

		$params = $this->getRequest()->getParams();
		$model = $this->getModel();
		
		$idCronometro = filter_var($params['id_cronometro'], FILTER_VALIDATE_INT);
		$idStatus = filter_var($params['id_status'], FILTER_VALIDATE_INT);

		
		$rs = $model->atualizarStatus($idCronometro, $idStatus, $params['ds_observacao'],true);

		if(!$rs){
			$return = [
				'message'=> 'Falha ao alterar status.',
				'error' => true
			];
		}

		$dataLog = [
			'id_status_antigo' => $rs['id_antiga'],
			'id_status_atual' => $rs['id_nova'],
			'id_usuario_criacao' => $User->id,
			'ds_observacao' => $params['ds_observacao'],
			'id_cronometro' => $idCronometro
		];
		//$this->setLog($dataLog);
		$this->getResponse()->setBody(Zend_Json::encode($return));
	}

	public function getHistoricoByIdCronometro($idCronometro){
		$modelHistorico = new Sinistro2_Model_CronometroRegulacaoHistorico();
		$historico = $modelHistorico->getByIdCronometro($idCronometro);

		return $historico;
	}

	public function setLog($data)
	{
		$modelHistorico = new Sinistro2_Model_CronometroRegulacaoHistorico();
		$modelHistorico->save($data);
	}
}