<?php

class EstimativasController extends GxController {

    var $help = 'Esta é a ajuda';

    public function actionLoad() {
        $solicitacao = $this->loadModel($_GET['id'], 'Solicitacoes');
        $estimativas = $solicitacao->loadEstimativas();
        $message = 'Dados carregados';
        if(empty($estimativas)){
            $message = 'Nenhum dado a ser carregado.';
        }
        $return = array('data' => $estimativas, 'message' => $message);
        echo CJSON::encode($return);
        Yii::app()->end();
    }

    public function actionSave() {
        $solicitacao = $this->loadModel($_POST['id'], 'Solicitacoes');
    	if(!$solicitacao->podeEditarPlanejamento()) {
    		header("HTTP/1.0 400 Relation Restriction");
        	echo 'Não é mais possível alterar as estimativas desta pendência.';
        	Yii::app()->end();
        }
        $solicitacao->clearEstimativas();
        $saveAll = true;
        $message = 'Todas as estimativas foram salvas corretamente.';
        $errors = array();
        if(isset($_POST['Estimativas'])) {
            foreach ($_POST['Estimativas'] as $key => $estimativaData) {
                $estimativa = new Estimativas;
                $estimativa->setDataToSave($estimativaData, $solicitacao->SOL_IDPENDENCIA);
                $ultimaLinha = (empty($estimativa->EST_DESCRICAO) &&
                        empty($estimativa->EST_INTERFACE_DEV) &&
                        empty($estimativa->EST_INTERFACE_TESTES) &&
                        empty($estimativa->EST_DADOS_DEV) &&
                        empty($estimativa->EST_DADOS_TESTES) &&
                        empty($estimativa->EST_RELATORIO_DEV) &&
                        empty($estimativa->EST_RELATORIO_TESTES) &&
                        empty($estimativa->EST_REGRAS_DEV) &&
                        empty($estimativa->EST_REGRAS_TESTES) &&
                        empty($estimativa->EST_TABELAS_DEV) &&
                        empty($estimativa->EST_TABELAS_TESTES) &&
                        (empty($estimativa->EST_TEMPO_DEV) || $estimativa->EST_TEMPO_DEV == '00:00') &&
                        (empty($estimativa->EST_TEMPO_TESTES) || $estimativa->EST_TEMPO_TESTES == '00:00'));
                if($estimativa->EST_DESCRICAO != '') {
                	if(!$estimativa->save()) {
                        $saveAll = false;
                        $errors[$estimativa->EST_DESCRICAO] = $estimativa->getErrors();
                    }
                } else if(!$ultimaLinha) {
                    $errors["Linha ".($key +1)] = 'Descrição é obrigatória';
                	$saveAll = false;
                }
            }
            if(!$saveAll) {
                $message = 'Nem todas as estimativas foram salvas. Por favor tente novamente!';
            }
        } else {
            $message = 'Nada para salvar!';
        }
        if(!empty($errors)){
            $return = array('message' => $message, 'errors' => $errors);
        } else {
            $return = array('message' => $message);
        }
        echo CJSON::encode($return);
        Yii::app()->end();
    }

}