<?php

class Atendimento_Model_Proposta_Pendencias extends Agro_Db_Table_Abstract {
	protected $_schema = 'seguro';
	protected $_name = 'propostas_pendencias';
	protected $_primary = array('id_proposta_status', 'id_pendencia');
	
	public function save(array $values) {
		$Row = $this->find($values['id_proposta_status'], $values['id_pendencia'])->current();
		if (!$Row) $Row = $this->createRow();
		
		$Row->id_proposta_status = $values['id_proposta_status']; 
		$Row->id_pendencia = $values['id_pendencia'];
		$Row->dt_prazo = Agro_Util::formatDate($values['dt_prazo'], Zend_Date::W3C);
		$Row->hr_prazo = $values['hr_prazo'];
		
		return $Row->save();
	}
	
	public function getPendencias(int $idProposta)
    {
        $select = $this->select()->setIntegrityCheck(false)->distinct(true);
        $select->from(array('p' => 'seguro.propostas'), false);
        $select->join(array('ps' => 'seguro.propostas_status'), 'p.id = ps.id_proposta and ps.fl_ativo is true', false);
        $select->join(
            array('pp' => 'seguro.propostas_pendencias'),
            'ps.id = pp.id_proposta_status',
            array('id_pendencia', 'dt_prazo', 'hr_prazo')
        );
        $select->join(array('ap' => 'atendimento.pendencias'), 'pp.id_pendencia = ap.id', array('ds_nome_pendencia'));
        $select->where('p.id = ?', $idProposta);
        $rs = $this->fetchAll($select);

        $ret = array();
        if ($rs->count()) {
            foreach ($rs as $Row) {
                $ret['id_pendencia'][$Row->id_pendencia] = $Row->id_pendencia;
                $ret['ds_nome_pendencia'][$Row->id_pendencia] = $Row->ds_nome_pendencia;
                $ret['dt_prazo'] = $Row->dt_prazo;
                $ret['hr_prazo'] = $Row->hr_prazo;
            }
        }

        return $ret;
    }

}