<?php

class Estimativas extends GxActiveRecord {

    public static function model($className = __CLASS__) {
        return parent::model($className);
    }

    public function tableName() {
        return 'estimativas';
    }

    public static function label($n = 1) {
        return Yii::t('app', 'Estimativa|Estimativas', $n);
    }

    public static function representingColumn() {
        return 'EST_ID';
    }

    public function rules() {
        return array(
            array('EST_IDSOLICITACAO, EST_DESCRICAO, EST_TEMPO_DEV, EST_TEMPO_TESTES', 'required'),
            array('EST_IDSOLICITACAO', 'numerical', 'integerOnly' => true),
            array('EST_IDSOLICITACAO, EST_DESCRICAO, EST_INTERFACE_DEV, EST_INTERFACE_TESTES, EST_DADOS_DEV, EST_DADOS_TESTES, EST_RELATORIO_DEV, EST_RELATORIO_TESTES, EST_REGRAS_DEV, EST_REGRAS_TESTES, EST_TABELAS_DEV, EST_TABELAS_TESTES, EST_TEMPO_DEV, EST_TEMPO_TESTES', 'safe'),
        );
    }

    public function relations() {
        return array(
            'Solicitacao' => array(self::BELONGS_TO, 'Solicitacoes', 'EST_IDSOLICITACAO'),
        );
    }

    public function pivotModels() {
        return array(
        );
    }

    public function attributeLabels() {
        return array(
            'ATA_IDATA'             => 'Código',
            'EST_IDSOLICITACAO'     => 'Código da Pendência',
            'EST_DESCRICAO'         => 'Descrição',
            'EST_INTERFACE_DEV'     => 'Tipo de interface Dev',
            'EST_INTERFACE_TESTES'  => 'Tipo de interface Testes',
            'EST_DADOS_DEV'         => 'Manipulação de dados Dev',
            'EST_DADOS_TESTES'      => 'Manipulação de dados Testes',
            'EST_RELATORIO_DEV'     => 'Relatório Dev',
            'EST_RELATORIO_TESTES'  => 'Relatório Testes',
            'EST_REGRAS_DEV'        => 'Regras de negócio Dev',
            'EST_REGRAS_TESTES'     => 'Regras de negócio Testes',
            'EST_TABELAS_DEV'       => 'Nro. tabelas/data modules Dev',
            'EST_TABELAS_TESTES'    => 'Nro. tabelas/data modules Testes',
            'EST_TEMPO_DEV'         => 'Tempo estimado Dev',
            'EST_TEMPO_TESTES'      => 'Tempo estimado Testes',
            'Solicitacao'           => 'Pendência',
        );
    }

    public function beforeSave() {
        parent::beforeSave();
        return true;
    }

    public function convertTime($str) {
        $horas = intval($str / 60);
        $minutos = intval($str % 60);
        return (strlen($horas) == 1 ? '0' . $horas  : $horas) . ':' . (strlen($minutos) == 1 ? '0' . $minutos : substr($minutos, 0, 2));
    }

    public function convertMinutes($str) {
        $str = explode(':', $str);
        $horas = intval($str[0]);
        $minutos = intval($str[1] * 60);
        return ($hroas + $minutos);
    }

    public function getEstimativaDev() {
        return $this->convertTime($this->EST_TEMPO_DEV);
    }

    public function getEstimativaTestes() {
        return $this->convertTime($this->EST_TEMPO_TESTES);
    }

    public function setDataToSave($data, $idsolicitacao) {
        $this->EST_IDSOLICITACAO = $idsolicitacao;
        if(isset($data['EST_DESCRICAO']) && EstimativasUtil::getNotNull($data['EST_DESCRICAO']) != '') {
            $this->EST_DESCRICAO = utf8_decode($data['EST_DESCRICAO']);
        }
        if(isset($data['EST_INTERFACE_DEV']) && EstimativasUtil::getNotNull($data['EST_INTERFACE_DEV']) != '') {
            $this->EST_INTERFACE_DEV = $data['EST_INTERFACE_DEV'];
        }
        if(isset($data['EST_INTERFACE_TESTES']) && EstimativasUtil::getNotNull($data['EST_INTERFACE_TESTES']) != '') {
            $this->EST_INTERFACE_TESTES = $data['EST_INTERFACE_TESTES'];
        }
        if(isset($data['EST_DADOS_DEV']) && EstimativasUtil::getNotNull($data['EST_DADOS_DEV']) != '') {
            $this->EST_DADOS_DEV = $data['EST_DADOS_DEV'];
        }
        if(isset($data['EST_DADOS_TESTES']) && EstimativasUtil::getNotNull($data['EST_DADOS_TESTES']) != '') {
            $this->EST_DADOS_TESTES = $data['EST_DADOS_TESTES'];
        }
        if(isset($data['EST_RELATORIO_DEV']) && EstimativasUtil::getNotNull($data['EST_RELATORIO_DEV']) != '') {
            $this->EST_RELATORIO_DEV = $data['EST_RELATORIO_DEV'];
        }
        if(isset($data['EST_RELATORIO_TESTES']) && EstimativasUtil::getNotNull($data['EST_RELATORIO_TESTES']) != '') {
            $this->EST_RELATORIO_TESTES = $data['EST_RELATORIO_TESTES'];
        }
        if(isset($data['EST_REGRAS_DEV']) && EstimativasUtil::getNotNull($data['EST_REGRAS_DEV']) != '') {
            $this->EST_REGRAS_DEV = $data['EST_REGRAS_DEV'];
        }
        if(isset($data['EST_REGRAS_TESTES']) && EstimativasUtil::getNotNull($data['EST_REGRAS_TESTES']) != '') {
            $this->EST_REGRAS_TESTES = $data['EST_REGRAS_TESTES'];
        }
        if(isset($data['EST_TABELAS_DEV']) && EstimativasUtil::getNotNull($data['EST_TABELAS_DEV']) != '') {
            $this->EST_TABELAS_DEV = $data['EST_TABELAS_DEV'];
        }
        if(isset($data['EST_TABELAS_TESTES']) && EstimativasUtil::getNotNull($data['EST_TABELAS_TESTES']) != '') {
            $this->EST_TABELAS_TESTES = $data['EST_TABELAS_TESTES'];
        }

        $this->EST_TEMPO_DEV = EstimativasUtil::estimativaDev($this);
        $this->EST_TEMPO_TESTES = EstimativasUtil::estimativaTestes($this);
    }

}