<?php

class Default_Model_Boleto extends Agro_Db_Table_Abstract {
	protected $_primary = array('id_proposta', 'nu_boleto', 'id_versao');
	protected $_name = 'proposta_boletos';
	protected $_schema = 'seguro';

	private function _desativaBoletos($idProposta) {
		return $this->getAdapter()->query("update seguro.proposta_boletos set fl_ativo = false where id_proposta = $idProposta");
	}

	public function save(array $values) {
		try {
			$this->_desativaBoletos($values['id_proposta']);
			$Row = $this->createRow();

			$Row->ds_identificador = $values['ds_identificador'];
			$Row->id_proposta = $values['id_proposta'];
			$Row->nr_parcela = $values['nr_parcela'];
			$Row->nu_boleto = $values['nu_boleto'];
			$Row->id_versao = $values['id_versao'];
			$Row->fl_pago = 0;
			$Row->save();

			return true;
		} catch (Exception $e) {
			return false;
		}
	}

	public function removeBoletos($idProposta, $idVersao) {
	    return $this->getAdapter()->query("delete from seguro.proposta_boletos where id_versao=".$idVersao." and id_proposta = ".$idProposta);
	}

	public function atualizaBoletos(array $values) {

	    try {
	        $Row = $this->createRow();
	        $Row->ds_identificador      = $values['nu_boleto'];
	        $Row->id_proposta           = $values['id_proposta'];
	        $Row->id_versao             = $values['id_versao'];
	        $Row->nr_parcela            = $values['nr_parcela'];
	        $Row->nu_boleto             = $values['nu_boleto'];
	        $Row->dt_vencimento         = $values['dt_vencimento'];
	        $Row->fl_pago               = ((!$values['fl_pago'] || $values['fl_pago'] == 'Não') ? 0 : 1);
	        $Row->vl_total              = $values['vl_total'];
	        $Row->vl_segurado           = $values['vl_segurado'];
	        $Row->vl_subvencao_federal  = $values['vl_subvencao_federal'];
	        $Row->vl_subvencao_estadual = $values['vl_subvencao_estadual'];
	        $Row->dt_vencimento         = $values['dt_vencimento'];


	        $Row->save();

	        return true;
	    } catch (Exception $e) {
            print_r($e);die;
	        return false;
	    }
	}
	
	public function insereProrrogacao(array $values) {
	
	    try {

	    	$idUsuario = $this->_user->id ? $this->_user->id : 1009;
	    	
	        $this->getAdapter()->query("insert into seguro.propostas_boletos_prorrogacoes 
	        								(id_usuario_criacao, ds_nome_arquivo, id_proposta, nu_boleto, nr_parcela, id_versao, vl_total, vl_segurado, vl_juros, vl_multa, dt_vencimento)
	        									values
	        								(".$idUsuario.", '".$values['ds_nome_arquivo']."', ".$values['id_proposta'].", ".$values['nu_boleto'].", ".$values['nr_parcela'].", ".$values['id_versao'].", ".$values['vl_total'].", ".$values['vl_segurado'].", ".$values['vl_juros'].", ".$values['vl_multa'].", '".Agro_Util::formatDate($values['dt_vencimento'], Zend_Date::W3C)."')"
                                         );
			return true;
	    } catch (Exception $e) {
	        print_r($e);die;
	        return false;
	    }
	}

	public function atualizaPagamentoBoleto(array $values) {
	
		try {
	
			$fl_pago = ((!$values['fl_pago'] || $values['fl_pago'] == 'Não') ? '0' : '1');
	
			$this->getAdapter()->query("update seguro.proposta_boletos set
						fl_pago                  = '$fl_pago',
						dt_verificacao_pagamento = now(),
						id_usuario_alteracao     = ".$this->_user->id.",
						vl_pago                  = ".$values['vl_pago']."
					where
						id_versao       = ".$values['id_versao']."
						and id_proposta = ".$values['id_proposta']."
                    	and nr_parcela  = ".$values['nr_parcela']
			);

			$this->getAdapter()->query("update seguro.propostas_parcelas set
                        fl_pago                  = '$fl_pago',
	                    dt_verificacao_pagamento = now(),
						id_usuario_alteracao     = ".$this->_user->id.",
	                    vl_pago                  = ".$values['vl_pago'].",
	                    dt_pagamento             = ".($values['dt_pagamento'] ? "to_date('".$values['dt_pagamento']."', 'dd/mm/yyyy')" : 'null')."
	                where
	                    id_proposta     = ".$values['id_proposta']."
	                    and nr_parcela  = ".$values['nr_parcela']
			);
	
		} catch (Exception $e) {
	        print_r($e);die;
	        return false;
	    }
	}
	
}

