<?php

class Endosso_Model_Proposta_Parcelas extends Agro_Db_Table_Propostas {
	protected $_primary = array('id_proposta', 'nr_parcela');
	protected $_name = 'propostas_parcelas';
	protected $_schema = 'seguro';
	
	public function add($idProposta, $row) {
		$Row = $this->createRow();
		
		$Row->id_proposta = $idProposta;
		$Row->nr_parcela = $row['nr_parcela'];
		$Row->vl_total = $row['vl_total'];
		$Row->vl_segurado = $row['vl_segurado'];
		$Row->vl_subvencao_federal = $row['vl_subvencao_federal'];
		$Row->vl_subvencao_estadual = $row['vl_subvencao_estadual'];
		$Row->dt_vencimento = $row['dt_vencimento'];
		$Row->id_usuario_criacao = $row['id_usuario_criacao'];
		$Row->id_usuario_alteracao = $row['id_usuario_alteracao'];
		
		return $Row->save();
	}
	
	public function save($params) {
		
		try {
			if ($params['id_proposta']) {
				$this->clear($params['id_proposta']);
				
				if (is_array($params['parcela'])) {
					foreach ($params['parcela'] as $nro => $parcela) {
						
						$Row = $this->createRow();
	
						$Row->id_proposta = $params['id_proposta'];
						$Row->nr_parcela = $nro;
						$Row->dt_vencimento = Agro_Util::formatDate($parcela['vencimento'], Zend_Date::W3C);
						
						//se for endosso de restituição força a parcela a ser negativa, caso não esteja
						if($params['tipo_endosso'] == '2'){
							if($parcela['segurado'] > 0){
								$Row->vl_segurado = Agro_Util::formatCurrencyDb($parcela['segurado']) * -1;
							} else {
								$Row->vl_segurado = Agro_Util::formatCurrencyDb($parcela['segurado']);
							}
							
							if($parcela['federal'] > 0){
								$Row->vl_subvencao_federal = Agro_Util::formatCurrencyDb($parcela['federal']) * -1;
							} else {
								$Row->vl_subvencao_federal = Agro_Util::formatCurrencyDb($parcela['federal']);
							}
							
							if($parcela['estadual'] > 0){
								$Row->vl_subvencao_estadual = Agro_Util::formatCurrencyDb($parcela['estadual']) * -1;
							} else {
								$Row->vl_subvencao_estadual = Agro_Util::formatCurrencyDb($parcela['estadual']);
							}
							
						} else {
							$Row->vl_segurado = Agro_Util::formatCurrencyDb($parcela['segurado']);
							$Row->vl_subvencao_federal = Agro_Util::formatCurrencyDb($parcela['federal']);
							$Row->vl_subvencao_estadual = Agro_Util::formatCurrencyDb($parcela['estadual']);
							
							if($params['id_motivo_cobrar_subvencao_federal'] && $Row->vl_subvencao_federal < 0){
								$Row->id_motivo_cobranca_subvencao_segurado = $params['id_motivo_cobrar_subvencao_federal'];
							}
							if($params['id_motivo_cobrar_subvencao_estadual'] && $Row->vl_subvencao_estadual < 0){
								$Row->id_motivo_cobranca_subvencao_segurado = $params['id_motivo_cobrar_subvencao_estadual'];
							}
						}
	
						$Row->vl_total = $Row->vl_segurado + $Row->vl_subvencao_federal + $Row->vl_subvencao_estadual;
						$Row->save();
					}
				}
			}
			
			return true;
		} catch (Exception $e) {
			return false;
		} 
	}
	
	public function clear($id_proposta) {
		$this->getAdapter()->query("delete from seguro.propostas_parcelas where id_proposta = $id_proposta");
	}
}