<?php

class Seguro_Service_Proposta
{
    public function maiorDataEntreVigenciaInicioTransmissao(string $dataVigenciaInicio, string $dataTransmissao = '')
    {
        $dataTransmissao = !empty($dataTransmissao) ? $dataTransmissao : date('Y-m-d');
        $diasEntreData = Agro_Util::contarDiasEntreDatas(
            Agro_Util::formatDate($dataVigenciaInicio, Zend_Date::DATES),
            $dataTransmissao
        );

        if ($diasEntreData > 0) {
            return $dataTransmissao;
        }

        return $dataVigenciaInicio;
    }

    /**
     * @param int $idProposta
     * @return Zend_Db_Table_Row_Abstract|null
     * @throws Zend_Db_Table_Exception
     * @throws Zend_Exception
     */
    public function dadosPropostaMae(int $idProposta): ?Zend_Db_Table_Row_Abstract
    {
        $modelPropostas = new Seguro_Model_Propostas();
        $dadosProposta = $modelPropostas->find($idProposta)->current();

        if (empty($dadosProposta)) {
            throw new Zend_Exception('Proposta não encontrada.');
        }

        if ($dadosProposta['id'] === $dadosProposta['id_proposta_mae']) {
            return $dadosProposta;
        }

        return $modelPropostas->find($dadosProposta['id_proposta_mae'])->current();
    }
}