/** * *Edita un tipo de almacen * * @param id_tipo_almacen int Id del tipo de almacen a editar * @param activo bool Indica si el tipo almacén se activa o desactiva * @param descripcion string Descripcion del tipo de almacen **/ static function NuevoTipo($descripcion, $activo = null) { Logger::log("Creando nuevo tipo de almacen"); if (!ValidacionesController::validarLongitudDeCadena($descripcion, 0, 64)) { Logger::error("descripcion : {$descripcion}"); throw new Exception($descripcion); } //No se puede repetir la descripcion del tipo de almacen $tipos_almacen = TipoAlmacenDAO::search(new TipoAlmacen(array("descripcion" => trim($descripcion)))); if (!empty($tipos_almacen)) { Logger::error("La descripcion (" . $descripcion . ") es repetida"); throw new BusinessLogicException("La descripcion esta repetida"); } $activo = $activo == null ? 1 : $activo; $tipo_almacen = new TipoAlmacen(array("descripcion" => trim($descripcion), "activo" => $activo)); DAO::transBegin(); try { TipoAlmacenDAO::save($tipo_almacen); } catch (Exception $e) { DAO::transRollback(); Logger::error("No se pudo crear el nuevo tipo de almacen: " . $e); throw new InvalidDatabaseOperationException("No se pudo crear el nuevo tipo de almacen, contacte a su administrador de sistema"); } DAO::transEnd(); Logger::log("Tipo de almacen creado exitosamente"); return array("id_tipo_almacen" => (int) $tipo_almacen->getIdTipoAlmacen()); }