/** * *Regresar? la equivalencia de esa moneda con respecto a la moneda base de la empresa que se le indique. * * @param id_empresa int El id de la empresa * @param id_moneda int El id de la moneda a la que se le desea sacar la equivalencia **/ public static function ObtenerEquivalenciaMoneda($id_empresa, $id_moneda) { $moneda_base = ConfiguracionDAO::search(new Configuracion(array("descripcion" => "id_moneda_base"))); if (count($moneda_base) < 1) { Logger::Log("La empresa no tiene moneda base"); throw new BusinessLogicException("La empresa no tiene moneda base"); } if (!($moneda = MonedaDAO::getByPK($moneda_base[0]->getValor()))) { Logger::error("No se tiene registro de la moneda " . $moneda_base[0]->getValor()); throw new InvalidDataException("No se tiene registro de la moneda " . $moneda_base[0]->getValor()); } if (!($moneda_eq = MonedaDAO::getByPK($id_moneda))) { Logger::error("No se tiene registro de la moneda {$id_moneda}"); throw new InvalidDataException("No se tiene registro de la moneda {$id_moneda}"); } $c = new Configuracion(); $c->setDescripcion("tipo_cambio"); $conf = ConfiguracionDAO::search($c); if (count($conf) < 1) { Logger::error("No existe la configuracion de monedas, contactar a personal de Caffeina"); throw new BusinessLogicException("No existe la configuracion de monedas, contactar a personal de Caffeina"); } else { $tc = $conf[0]; $json = $tc->getValor(); $obj = json_decode($json); foreach ($obj->tipos_cambio as $eq) { if ($eq->moneda == $moneda_eq->getSimbolo()) { $res = array("moneda_base" => $moneda->getSimbolo(), "moneda_equivalente" => $moneda_eq->getSimbolo(), "equivalencia" => $eq->equivalencia, "conversion" => $eq->conversion); return $res; } } } //en este punto no se encontraron registros Logger::log("No existe el tipo de cambio para esta moneda, actualice sus tipos de cambio del sistema"); return array("status" => "failure"); }