IAH Reserva en línea
Colocar el enlace para reservar un registro
Para invocar el script que inicia el proceso de reserva en línea, incluya la siguiente sentencia del lenguaje de formateo utilizado en el formato utilizado para mostrar los registros en el iAH :
<a href='javascript:Reservar("
V2","biblo","S")'>Reservar</A>
Nótese el uso de diferentes tipos de apóstrofes y comillas para construir la sentencia del lenguaje de formateo:
` Como delimitador de literal incondicional en el lenguaje de formateo ‘ Como delimitador de la sentencia <a href para referenciar correctamente la función Reservar “ Como delimitador de los parámetros que se pasan a la función Reservar
De esta forma se hace un llamado a la función Reservar la cual debe recibir 3 parámetros:
Número de control o identificador del registro bibliográfico que se desea reservar
Nombre de la base de datos sobre la cual se va a aplicar la reserva
Indicador de si trabaja con copias ("S") o si el inventario está insertado en el registros ("N")
En el ejemplo mostrado el número de control o identificador del registro está en el campo V2, la base de datos que contiene la referencia bibliográfica se llama biblo y se está trabajando con la base de datos de copias. Ver Modalidades para el manejo del inventario de la colección
Si desea condicionar la aparición del enlace solo en aquellos casos de que el registro posea copias puede condicionar la inclusión del script de acuerdo al número de ocurrencias del campo del inventario. Ejemplos:
Si se trabaja con copias
ref(['loanobjects']l(['loanobjects'],'CN_biblo_'v2),
'<p><table border=0 bgcolor=#cccccc>'
'<td colspan=4 bgcolor=white><b>Disponibilidad en préstamos</b>: 'f(nocc(v959),1,0)'</td>'
'<tr><td>No.inventario</td><td>Biblioteca</td><td>Tipo de material</td><td>Devolución</td>'
(if p(v959) then '<tr><td align=center bgcolor=white>'v959^i'</td>
<td align=center bgcolor=white>'v959^l'</td><td align=center bgcolor=white>'v959^o'<td bgcolor=white>'
e1:=e1+1
ref(['trans']l(['trans'],'TR_P_'v959^i),v40,) '</td>' fi/)
'</table>',
)
if e1>0 then
`<a href='javascript:Reservar("`V2`","biblo","S")'>Reservar</A>`
fi
En este ejemplo se accede a la base de datos loanobjects y por cada ocurrencia del campo 959 se incrementa en 1 la variable virtual e1 y se hace un acceso a la base de datos de transacciones, para ver si ese número de inventario está prestado. En caso afirmativo se obtiene la fecha de devolución.
Al terminar de recorrer todas las ocurrencias del campo 959 se analiza la variable e1 y es mayor que cero entonces se incluye el vínculo para reservar ya que el registro posee existencias. El incremento de la variable e1 podría condicionarse a cualquier análisis que pueda efectuarse sobre la ocurrencia del registro de loanobjects que se está procesando en ese momento
Si se trabaja sin copias
Asumiendo que las copias estén en el campo 101 se podría construir este formato para presentar la disponibilidad del título:
if p(v101) then
e2:=npost(['trans'],'ON_P_'v2),/
e1:=nocc(v101),/
'<p>Total de ejemplares: ' ,f(e1,1,0),'<br>',
'Total prestados: ' f(e2,1,0) '<br>',
'<table bgcolor=#cccccc width=100%>
<td colspan=12 align=center><strong>Existencias</strong></td>
<tr>
<th>Inventario</th>
<th nowrap>Tipo obj.</th>
<th>Vol.</th>
<th>Ej.</th>
<th>Ubicac.</th>
<td>F.Devolucion</th>
</tr>'
(if p(v101) then
'<tr><td bgcolor=white>'v101^n'</td>'
'<td bgcolor=white>'v101^t'</td>'
'<td bgcolor=white>'v101^m'</td>'
'<td bgcolor=white>'v101^l'</td>'
'<td bgcolor=white>'v101^o'</td>'
'<td bgcolor=white>',
REF->trans(L->trans('TR_P_'v101^n),
'<span style="color:#990000">'v40*6.2"/",v40*4.2"/", v40*0.4' 'v45'</span>')
'</td></tr>'
fi/)
'</table>'
fi
if e1-e2>0 then
`<a href='javascript:Reservar("`V2`","biblo","N")'>Reservar</A>`
fi
Note que en este caso la tercera variable que se pasa al script Reservar tiene el valor N para indicar que no se trabaja con la base de datos de copias.
El formato mostrado en el ejemplo muestra las existencias de la siguiente manera:
Agregar el script Reservar en el formato a ahhead.pft
La función Reservar a la cual se hace referencia en el vínculo agregado anteriormente debe estar definida en el formato ahhead.pft localizado en htdocs/iah/scripts/[codigo_de_lenguaje_activo]. Esta función se define de la siguiente forma:
function Reservar(cn,base,copies){
DB_PATH="'V5000^b'"
lang="'V5021'"
url="/central/iah/usuario_prestamo.php?Expresion=CN_"+cn+"&base="+base+"&cipar="+base+".par&copies="+copies+"&desde=IAH_RESERVA&Opcion=IAH&DB_PATH="+DB_PATH+"&lang="+lang
msgwin=window.open(url,"Reserva","width=400,height=250,scrollbars,resizable");
msgwin.focus()
}
La variable v5000^b la provee el iAH y contiene el camino hacia la carpeta de bases de datos definido en el archivo de configuración iah.def.php localizado en la carpeta htdocs/iah/scripts.
La variable v5021 la provee el iAH con el código de lenguaje activo.
Esta función abre una nueva ventana para solicitar la clave del usuario a través del script central/iah/usuario_prestamo.php
Nota importante: Si copia directamente los scripts y comandos del lenguaje de formateo al block de notas (Notepad) las comillas simples hay que escribirlas nuevamente en el documento porque de otro modo esos caracteres no son interpretados correctamente por el editor del block de notas.
Procesamiento de la reserva
(1) | Logo que se especifica bajo el parámetro LOGO_OPAC del archivo de configuracion abcd.def |
(2) | Mensaje identificado como iah_usuario_reserva en el archivo de mensajes prestamo.tab.
Puede editar este mensaje colocando etiquetas HTML para ampliar la información que desea transmitir al usuario |
El color de fondo de la ventana se obtiene a partir del parámetro BG_WEB=#ffffff del archivo Abcd.def |
Al suministrar el código del usuario se verifica su validez contra la base de datos users, se accede al estado de cuenta del usuario y se revisa si la política de préstamos y reserva permite reservar el título.
Si no se puede reservar se presenta una ventana con el resultado indicando la causa del rechazo
(1) | Logo que se especifica bajo el parámetro LOGO_OPAC del archivo de configuracion abcd.def |
(2) | Identificación del usuario con el formato definido en la configuración de la base de datos de usuarios |
(3) | Mensaje identificado como rsvr_hlp en el archivo de mensajes prestamo.tab |
(4) | Información del título cuya reserva se está solicitando obtenido a partir de la configuración de la base de datos de orígen |
(5) | Mensaje identificado como reserve_tit_5 en el archivo de mensajes prestamo.tab |
(6) | Número de reservas que están asignadas y/o en cola (situación 0 ó 3) |
El color de fondo de la ventana se obtiene a partir del parámetro BG_WEB=#ffffff del archivo Abcd.def |
Si la reserva procede se presenta el botón correspondiente para formalizarla:
(1) | Logo que se especifica bajo el parámetro LOGO_OPAC del archivo de configuracion abcd.def |
(2) | Identificación del usuario con el formato definido en la configuración de la base de datos de usuarios |
(3) | Mensaje identificado como rsvr_hlp en el archivo de mensajes prestamo.tab |
(4) | Información del título cuya reserva se está solicitando obtenido a partir de la configuración de la base de datos de orígen |
(5) | Número de reservas que están asignadas y/o en cola (situación 0 ó 3) |
(6) | Mensaje identificado como opac_ecta en el archivo de mensajes prestamo.tab |
El color de fondo de la ventana se obtiene a partir del parámetro BG_WEB=#ffffff del archivo Abcd.def |
y luego se presenta el resultado del proceso el cual incluye el estado de cuenta del usuario
Los formatos con los que se presenta la información están definidos bajo la opción de configuración del módulo de préstamo circulante. Los scripts que realizan el análisis de la procedencia la reserva son los mismos utilizados por el operador de préstamos cuando hace la reserva en forma directa.