<?php

class Produto_Model_CondicoesPagamentoItensOpcoes extends Agro_Db_Table_Abstract {
	protected $_schema = 'produto';
	protected $_name = 'condicoes_pagamento_itens_opcoes';
	protected $_primary = 'id_condicao_pagamento_item';

	public function save($values) {
		$Row = $this->createRow();

		$Row->id_condicao_pagamento_item = $values['id_condicao_pagamento_item'];
		$Row->vl_percentual_parcela = $values['vl_percentual_parcela'];
		$Row->dt_vencimento_parcela = $values['dt_vencimento_parcela'];
		$Row->nr_parcela = $values['nr_parcela'];

		return $Row->save();
	}

	public function getItensOpcoes($id, $parcela=false) {
		$select = $this->select();

		if ($parcela) {
			$select->from(array('p'=>'produto.condicoes_pagamento_itens_opcoes'), array(
				"id_condicao_pagamento_item",
				"dt_vencimento_parcela",
				"vl_percentual_parcela",
				"nr_parcela"
			));
		} else {
			$select->from(array('p'=>'produto.condicoes_pagamento_itens_opcoes'), array(
				"id_condicao_pagamento_item",
				"nr_parcela",
				"to_char(dt_vencimento_parcela, 'dd/mm/yyyy') as dt_vencimento_parcela",
				"vl_percentual_parcela"
			));
		}

		$select->where('id_condicao_pagamento_item = ?', $id);

		if ($parcela) {
			$select->where('nr_parcela = ?', $parcela);
			return $this->fetchRow($select);
		} else {
			return $this->fetchAll($select);
		}
	}

	public function delete($idPagamentoItem) {
		return $this->_db->query("delete from {$this->_schema}.{$this->_name} where id_condicao_pagamento_item = $idPagamentoItem");
	}

	public function beforeDelete($id, $field) {
		$Model = new Produto_Model_CondicoesPagamentoItensOpcoes();
		$Model->delete($id, 'id_condicao_pagamento_item');
	}
}