/**
  *
  * checks if a currency exists, creates it and returns it.
  * @param String $code
  * @param String $name OPTIONAL
  *
  * @return NULL | EcommerceCurrency
  */
 public static function create_new($code, $name = "")
 {
     $code = trim(strtoupper($code));
     if (!$name) {
         $currencies = Config::inst()->get("EcommerceCurrency", "currencies");
         if (isset($currencies[$code])) {
             $name = $currencies[$code];
         } else {
             $name = $code;
         }
     }
     $name = ucwords($name);
     if ($currency = EcommerceCurrency::get()->filter(array("Code" => $code))->first()) {
         $currency->Name = $name;
         $currency->InUse = true;
     } else {
         $currency = EcommerceCurrency::create(array('Code' => $code, 'Name' => $name, 'InUse' => true));
     }
     $valid = $currency->write();
     if ($valid) {
         return $currency;
     }
 }