public static function precio_saved($currency, $value) { if (!is_a($currency, 'currency_currency')) { $currency = new currency_currency($currency); } $precio = new currency_value(); $precio->set('value', $value); $precio->set('currency', $currency); if (!$precio->store()) { return false; } return $precio; }
public function Convert($currency_value, $currency, $previous_change = false) { $multiplicador = 0; //moneda predeterminada $default = currency_currency::getDefault(); if ($previous_change) { $last_change_from = $currency_value->get('currency')->get_quote($currency_value); $last_change_from_value = $last_change_from[0]['value']; $last_change_to = $currency->get_quote($currency_value); $last_change_to_value = $last_change_to[0]['value']; } else { $last_change_from = $currency_value->get('currency')->getLastChange(); $last_change_from_value = $last_change_from['value']; $last_change_to = $currency->getLastChange(); $last_change_to_value = $last_change_to['value']; } $default_is_from = $currency_value->get('currency')->id() == $default->id(); $defailt_is_to = $currency->id() == $default->id(); $valor = $currency_value->get('value'); $new_value = 0; //si la moneda desde es la predeterminada if ($default_is_from) { //si tengo que convertir a una moneda fija(1) if ($currency->get('type') == 1) { $new_value = $valor * $currency->get('value'); } else { $new_value = $valor * $last_change_to_value; } //end if } else { //NO PREDETERMINADA // //si tengo que convertir a una moneda fija(1) if ($currency_value->get('currency')->get('type') == 1) { if ($defailt_is_to) { $new_value = $valor / $currency_value->get('currency')->get('value'); } else { if ($currency->get('type') == 1) { $new_value = $valor / $currency_value->get('currency')->get('value') * $currency->get('value'); } else { $new_value = $valor / $currency_value->get('currency')->get('value') * $last_change_to_value; } //end if } //end if } else { if ($defailt_is_to) { $new_value = $valor / $last_change_from_value; } else { if ($currency->get('type') == 1) { $new_value = $valor / $last_change_from_value * $currency->get('value'); } else { $new_value = $valor / $last_change_from_value * $last_change_to_value; } //end if } //end if } //end if } //end if $new_currency_value = new currency_value(); $new_currency_value->set('value', $new_value); $new_currency_value->set('currency', $currency); return $new_currency_value; }