/** * Calcula o saldo que esta rubrica tem na vera passada * @param unknown $cod_verba */ public function getSaldo($cod_verba) { $receita = ProjetoVerba::model()->findByPk($cod_verba); $gasto_rubrica = $receita->gastosComprometidos($this); $recebido = $gasto_rubrica + min($receita->saldo_comprometido, $receita->projeto->getOrcamentado($this->cod_rubrica) - $gasto_rubrica); $gasto_comprometido = $receita->gastosComprometidos($this); $saldo = $recebido - $gasto_comprometido; return $saldo; }
/** * Deleta um desembolso * @param integer $id - identificador do desembolso */ public function actionSetup() { $this->layout = false; $verbas = ProjetoVerba::model()->findAll(); echo count($verbas) . " verbas encontradas<br>"; foreach ($verbas as $k => $v) { echo "<br>" . ($k + 1) . " Setup verba " . $v->cod_verba; $pj = ProjetoVerbaRubrica::model()->find('cod_rubrica = :r AND cod_verba = :v', array('v' => $v->cod_verba, 'r' => $v->cod_rubrica)); //vincula esta verba a uma rubrica caso nao tenha if ($pj === null) { $pj = new ProjetoVerbaRubrica(); $pj->cod_rubrica = $v->cod_rubrica; $pj->cod_verba = $v->cod_verba; $pj->save(); echo "<br> Vinculando verba " . $v->cod_verba . " a rubrica " . $v->cod_rubrica; } else { echo "<br> Verba ja contem rubrica vinculada"; } //Adiciona um desembolso inicial caso nao tenha if (count($v->desembolsos) < 1) { $desembolso = new ProjetoDesembolso(); $desembolso->cod_verba = $v->cod_verba; $desembolso->data = date('Y-m-d'); $desembolso->valor = $v->valor; $desembolso->save(); echo "<br>Desembolso Salvo " . $desembolso->valor; } else { echo "<br> Verba ja contem desembolso"; } echo '<hr>'; } //endforeach }
public function validaSaldoRub($attribute, $params) { $receita = ProjetoVerba::model()->findByPk($this->cod_verba); $rubrica = Rubrica::model()->findByPk($this->cod_rubrica); $gasto_rubrica = $receita->gastosComprometidos($rubrica); $recebido = $gasto_rubrica + min($receita->saldo_comprometido, $receita->projeto->getOrcamentado($rubrica->cod_rubrica) - $gasto_rubrica); $gasto_comprometido = $receita->gastosComprometidos($rubrica); $saldo = $recebido - $gasto_comprometido; if ($this->valor * $this->quantidade - $this->valor_antigo > $saldo) { $message = "Você tentou adicionar uma despesa de R\$" . Yii::app()->format->number($this->valor * $this->quantidade); $message .= "<br> Saldo disponível: R\$" . Yii::app()->format->number($saldo); $message .= "<br> Rubrica: " . $rubrica->nome; $this->addError($attribute, $message); } }