Esempio n. 1
0
 /**
  *
  *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");
 }