Exemple #1
0
 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;
 }
Exemple #2
0
 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;
 }