public function actionactualizacambio($moneda1, $moneda2) { $moneda = MiFactoria::cleanInput($moneda2); $moneda = MiFactoria::cleanInput($moneda1); $monedas = yii::app()->db->createCommand()->selectDistinct('codmon1')->from('{{tipocambio}}')->queryColumn(); if (!in_array($moneda1, $monedas)) { throw new CHttpException(500, __CLASS__ . ' ' . __FUNCTION__ . ' ' . __LINE__ . ' ...parametro de moneda incorrecto .'); } if (!in_array($moneda2, $monedas)) { throw new CHttpException(500, __CLASS__ . ' ' . __FUNCTION__ . ' ' . __LINE__ . ' ...parametro de moneda incorrecto .'); } $model = Tipocambio::model()->find("codmon1='" . $moneda1 . "' and codmon2='" . $moneda2 . "'"); $model->setScenario('general'); $model->compra = yii::app()->tipocambio->getcompra($moneda2); $model->venta = round(1 / yii::app()->tipocambio->getventa($moneda2), 2); $model->monedaref = $moneda1; $monedasfirme = array_combine($monedas, $monedas); if (isset($_POST['Tipocambio'])) { //$model->attributes=$_POST['Tipocambio']; $model->attributes = $_POST['Tipocambio']; if ($model->validate()) { yii::app()->tipocambio->setcompra($model->monedaref, $model->compra); yii::app()->tipocambio->setventa($model->monedaref, $model->venta); } $this->redirect(array('cambio')); } $this->render('_form', array('model' => $model, 'monedas' => $monedasfirme)); }
public static function TipoCambio($monedaaentregar, $monedaaobtener) { $monedaaobtener = self::cleaninput($monedaaobtener); $monedaaentregar = self::cleaninput($monedaaentregar); $modelo = Tipocambio::model()->find(" codmon1='" . $monedaaentregar . "' and codmon2='" . $monedaaobtener . "'"); if (is_null($modelo)) { throw new CHttpException(500, __CLASS__ . ' => ' . __FUNCTION__ . ' oNO se ha encontrado el cambio de estas monedas :' . $monedaaentregar . " " . $monedaaobtener . " "); } return $modelo->cambio; }
public function setventa($moneda, $valorventa) { if ($this->getCompra($moneda) >= $valorventa and time() - $this->lastupdateventa($moneda) < 60 * 5) { throw new CHttpException(500, __CLASS__ . ' ' . __FUNCTION__ . ' ' . __LINE__ . ' El valor de la venta de la moneda ' . $moneda . ' no puede ser menor que la compra '); } $citer = new CDBCriteria(); $citer->addCondition("codmon1=:monedadef AND codmon2=:monedaacomprar"); $citer->params = array(":monedadef" => $this->monedadefault, ":monedaacomprar" => $moneda); $venta = Tipocambio::model()->find($citer); if (is_null($venta)) { throw new CHttpException(500, __CLASS__ . ' ' . __FUNCTION__ . ' ' . __LINE__ . ' No se ha registrado tipo de cambio compra para la moneda ' . $moneda); } $venta->setScenario('analitica'); $venta->setAttributes(array('cambio' => 1 / $valorventa, 'ultima' => date('Y-m-d H:i:s'))); $venta->validate(); if (count($venta->geterrors()) > 0) { //print_r($venta->geterrors()); //yii::app()->end(); throw new CHttpException(500, __CLASS__ . ' ' . __FUNCTION__ . ' ' . __LINE__ . ' No se ha podido registrar la compra de la moneda ' . $moneda . ' Revise el valor del cambio '); } return $venta->save(); }
public function actionColocatipocambio() { //$model=new Tipocambio(); //$vaccion=$_GET['maccion']; //$vcontrolador=$_GET['mcontrolador']; //$url=Yii::app()->baseUrl.DIRECTORY_SEPARATOR.$vcontrolador.DIRECTORY_SEPARATOR.$vaccion; $monedaalterna = Yii::app()->params['monedaalternativa']; $model = Tipocambio::model()->find("codmon2='" . $monedaalterna . "'"); $model->setScenario('insert'); $model->compra = yii::app()->tipocambio->getcompra($monedaalterna); $model->venta = round(1 / yii::app()->tipocambio->getventa($monedaalterna), 2); // $this->performAjaxValidation($model); if (isset($_POST['Tipocambio'])) { $model->attributes = $_POST['Tipocambio']; if ($model->validate()) { yii::app()->tipocambio->setcompra('USD', $model->compra); yii::app()->tipocambio->setventa('USD', $model->venta); echo CHtml::script("window.parent.\$('#cru-dialoggeneral').dialog('close');\n\t\t\t\t\t\t\t\t\t\twindow.parent.\$('#cru-framegeneral').attr('src','');\n\t\t\t\t\t\t\t\t\t\twindow.parent.\$('#zonaventa').html('{$model->venta}');\n\t\t\t\t\t\t\t\t\t\twindow.parent.\$('#zonaultima').html('{$model->ultima}');\n\t\t\t\t\t\t\t\t\t\twindow.parent.\$('#zonacompra').html('{$model->compra}');"); Yii::app()->end(); } } // if (!empty($_GET['asDialog'])) $this->layout = '//layouts/iframe'; $this->render('_form_tipocambio', array('model' => $model)); }
public function cambiomoneda($monedainicial, $monedadestino) { $modelmoneda = Tipocambio::model()->find(" codmon1='" . $monedainicial . "' and codmon2='" . $monedadestino . "' "); if (!is_null($modelmoneda)) { return $modelmoneda->numerador / $modelmoneda->denominador; } else { throw new CHttpException(404, 'No se ha encontrado el tipo de cambio'); } }