Difference between pages "Etiquetas" and "IAH Reserva en línea"

From ABCD Wiki
(Difference between pages)
Jump to: navigation, search
 
m
 
Line 1: Line 1:
Para activar esta opción incluya el parámetro
+
==Colocar el enlace para reservar un registro==
  barcode=Y
 
en el archivo [[Dr path.def]]. Con ello se presentará el ícono [[File:Barcode.png]] en la barra de herramientas del módulo de catalogación para darle acceso al menú correspondiente.
 
  
Para tener acceso a esta opción el operador debe ser
+
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  :
* '''Administrador del sistema''' o
+
  <nowiki>`<a href='javascript:Reservar("`V2`","biblo","S")'>Reservar</A>`</nowiki>
* tener todos los permisos de catalogación sobre la base de datos o
 
* tener habilitado el permiso de '''Impresión de marbetes y códigos de barra'''
 
  
en la base de datos correspondiente.
+
    '''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
 +
    '''<nowiki>'</nowiki>''' Como delimitador de la sentencia '''<nowiki><a href</nowiki>''' para referenciar correctamente la función '''Reservar'''
 +
    '''"''' Como delimitador de los parámetros que se pasan a la función '''Reservar''' 
  
Esta función le ayudará a imprimir las etiquetas que ayudan a identificar a los objetos de la base datos. Cada una se apoya en un archivo de configuración donde entre otra variables de definen las dimensiones de la etiqueta. Los resultados pueden ser enviados a la pantalla, a un archivo txt o a un procesador de textos. Hasta los momentos solo puede aplicarse cuando la información del inventario se almacena al interior del registro bibliográfico
+
De esta forma se hace un llamado a la función '''Reservar''' la cual debe recibir 3 parámetros:
  
Las etiquetas pueden emitirse por
+
      Número de control o identificador del registro bibliográfico que se desea reservar
* Número de clasificación
+
      Nombre de la base de datos sobre la cual se va a aplicar la reserva
: Se provee un rango de los números de clasificación de los registros y el reporte se emite para todos los números de inventario almacenados en el registro
+
      Indicador de si trabaja con copias ("S") o si el inventario está insertado en el registros ("N")
* Rango de números de inventario
 
: Se provee un rango de números de inventario y el reporte se emite para los números de inventario solicitados
 
* Lista de números de inventario
 
: Inserte en el recuadro correspondiente y separados por , los números de inventario para los cuales quiere realizar la impresión
 
* Rango de Mfn
 
: Se provee un rango de Mfns y el reporte se emite para todos los números de inventario contenido dentro de cada registro del rango solicitado
 
  
 +
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|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:
  
==Configuración==
+
===Si se trabaja con copias===
En este apartado se definen los parámetros que ayudan a extraer información de la base de datos, preparar la presentación de la etiqueta e informar sus dimensiones. Se solicita la siguiente información:
 
{| class="wikitable"
 
|-
 
! Parámetro !! Significado
 
|-
 
|valign=top | Prefijo del número de clasificación en la FST ||valign=top | Preliteral utilizado para identificar el número de clasificación en la FST. Ejemplo: <br>'''ST_'''
 
|-
 
|valign=top | Formato para localizar el número de clasificación ||valign=top | Formato que se aplicará sobre la base de datos para extraer el número de clasificación. Se precede del prefijo anterior para presentar la lista de números de clasificación en el proceso de selección de los  registros. Ejemplo: <br><font face="courier new">if p(v82^a) then v82^a,"."v82^b"."v82^c,"."v82^d,"."v82^e, else v82^b,"."v82^c,"."v82^d,"."v82^e fi</font>
 
|-
 
|valign=top | Prefijo del número de inventario en la FST (editado) ||valign=top | Preliteral utilizado para identificar los números de inventario en la FST y presentarlos debidamente organizados para la búsqueda por rango, por ejemplo, agregar ceros a la izquierda aún cuando no se haya ingresado de esa manera. Ejemplo: <br>'''NICLA_'''
 
  Nota: Se recomienda agregar este campo a la tabla de indización de los registros (FST).
 
  Ejemplo: (if p(v900^n) then 'NICLA_',
 
                if f(val(v900^n),1,0) = v900^n then replace(f(val(v900^n),5,0),` `,`0`), else  v900^n, fi,'%' /
 
            fi)
 
La secuencia de comandos en este formato:
 
# Determina si el campo es numérico (if f(val(v900^n),1,0) = v900^n), lo cual verifica si el valor del campo expresado en forma numérica es igual al valor del campo;
 
# En caso afirmativo se convierte el campo a un número a un formato fijo de 5 caracteres rellenando de espacios  la izquierda los cuales luego se reemplazan por ceros: replace(f(val(v900^n),5,0),` `,`0`);
 
# Si no es numérico no se realiza ningun cambio sobre el campo.<p>
 
  Una vez realizados los cambios sobre la FST debe volver a generar la lista invertida
 
  
  '''Nota''': El valor '''5''' mostrado en el formato debe adaptarse al número de posiciones que tiene actualmente el mayor
+
      <nowiki>ref(['loanobjects']l(['loanobjects'],'CN_biblo_'v2),
        código de barras ingresado en la base de datos.
+
          '<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</nowiki>
  
|-
+
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.
|valign=top | Formato para localizar el número de inventario (editado)||valign=top | Se aplicará sobre la base de datos para localizar el número de inventario y presentarlo en la ventana de selección de registros para poder emitir los rotulos por un rango o por una lista de números de inventario. En este ejemplo se han añadido a través del formato, ceros a la izquierda del número de inventario para asegurarse que la secuencia presentada y posteriormente recuperada sea la correcta.Ejemplo: <br><font face="courier new">if f(val(v900^n),1,0) = v900^n then replace(f(val(v900^n),5,0),` `,`0`), else v900^n fi </font><br>La secuencia de comandos: <br>
 
# Determina si el campo es numérico (if f(val(v900^n),1,0) = v900^n), lo cual verifica si el valor del campo expresado en forma numérica es igual al valor del campo;
 
# En caso afirmativo se convierte el campo a un número a un formato fijo de 5 caracteres rellenando de espacios  la izquierda los cuales luego se reemplazan por ceros: replace(f(val(v900^n),5,0),` `,`0`);
 
# Si no es numérico no se realiza ningun cambio sobre el campo.<p>
 
  
Esta es la lista presentada para los rangos de número de inventario cuando se agregan los ceros a la izquierda:
+
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
[[File:Rango números de inventario.png|centro]]
 
Recuerde que debe crear en la FST la clave de recuperación '''NICLA_''' con los números de inventario con ceros a la izquierda:<br><font face="courier new">900 0 (if p(v900^n) then 'NICLA_',if f(val(v900^n),1,0) = v900^n then replace(f(val(v900^n),5,0),` `,`0`), else v900^n fi,'%' /fi) </font><br>
 
Vea la diferencia si no se usa este método de rellenar con ceros la izquierda:
 
# la indización normal en la FST sería <font face="courier new">900 0 (|NI_|v900^n|%|/) </font>
 
# se utilizaría el prefijo '''"NI_"''' para recuperar los números de inventario
 
# el formato de extracción del número de inventario seria <font face="courier new">'''v900^n</font>
 
# la lista de números de inventario se visualizaría como:<br>
 
[[File:Rango números de inventario no clasificados.png|centro]]
 
con lo cual es imposible establecer un rango de números de inventario.
 
|-
 
|valign=top | Prefijo del número de inventario en la FST (no editado) ||valign=top | Preliteral utilizado para identificar los números de inventario en la FST respetando la forma como fueron ingresados. Se utiliza cuando se solicita la impresión a través de una lista de números de inventario ya que es necesario comparar la lista suministrada contra el valor ingresado en cada uno de los registros.
 
  Ejemplo: NI_
 
|-
 
|valign=top | Formato del número de inventario (no editado)||valign=top | Se aplicará sobre la base de datos para localizar el número de inventario tal como fue ingresado en la base de datos. Se usa para determinar si el número de inventario del campo repetible de las existencias corresponde al rango o a la lista solicitada.
 
  Ejemplo: v900^n
 
|-
 
|valign=top| Formato de despliegue (PFT)||valign=top| Formato a utilizar para imprimir el rótulo o etiqueta seleccionada. Ejemplo de etiqueta de código de barra:
 
    <nowiki>
 
    proc('a1000~' if p(v84[1]) then v84[1] else v82[1] fi'~'),/
 
    (if p(v900^n) then ,
 
        '*INV*'v900^n'*INV*',
 
        `<center><br><span  style="font-family:'Bar Code 39 e HR' ; font-size:40px">`v900^n`</span><p>`
 
          v1000^a[1],|.|v1000^b[1],|.|v1000^c[1],|.|v1000^d[1] '%%%'/
 
      fi) </nowiki>
 
  
Note:
 
# El uso de '''` ''' para codificar correctamente la PFT
 
# La inclusión de la fuente seleccionada para generar el código de barras:<br>      '''<nowiki><span  style="font-family:'Bar Code 39 e HR' ; font-size:40px"></nowiki>
 
#La inclusión de la constante '''*INV*''' antes y después del número de inventario (v900^n). Esto es indispensable porque si se solicita la impresión de un rango o una lista de números de inventario ABCD debe tener acceso a este valor para comparar la información extraída del registro contra los valores solicitados para determinar si una ocurrencia de las existencias va a ser o no va a ser incluída en la salida solicitada.
 
#Los saltos de línea fueros agregados para proporcionar mejor visibilidad al formato. El archivo de configuración no debe tener saltos de línea ya que se interpreta un parámetro por línea.
 
  
  '''Si lo desea el formato puede suministrarse como una pft externa utilizando @''nombre_del_formato''.pft'''
+
===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:
|valign=top| Formato de despliegue (PFT)<br>Enviar a TXT ||valign=top| Formato a aplicar cuando el resulado quiere ser enviado a un archivo TXT a fin de que sea procesado por una impresora especial. Puede ingresarse directamente en la casilla de texto o proveer el nombre de un formato ya existente o por crear en ese mismo proceso. Use el botón [[File:BarEdit.png]] para editar o crear el formato correspondiente
 
  
   Ejemplo del formato a aplicar para generar un archivo TXT para la impresión de los códigos de
+
   <nowiki>if p(v101) then
  barra desde una impresora Zebra:
+
      e2:=npost(['trans'],'ON_P_'v2),/
 
+
      e1:=nocc(v101),/
  proc('a1000~' if p(v84[1]) then v84[1] else v82[1] fi'~'),/
+
       '<p>Total de ejemplares: ' ,f(e1,1,0),'<br>',
  (if p(v900^n) then ,
+
       'Total prestados: ' f(e2,1,0) '<br>',
       <strong>'*INV*'v900^n'*INV*'</strong>,
+
       '<table bgcolor=#cccccc width=100%>
      '^XA~TA0~JSO^LT0^MMT^MNW^MTT^PON^PMN^LH0,0^JMA^PR2,2^MD30^JUS^LRN^CI0^XZ',/
+
            <td colspan=12 align=center><strong>Existencias</strong></td>
      '^XA^LL0203',/
+
          <tr>
      '^PW831',/
+
            <th>Inventario</th>
       '^FO,31^FS',/
+
            <th nowrap>Tipo obj.</th>
      '^FT97,41^A0N,25,43^FH^FD',v1000^a[1]'^FS',/
+
            <th>Vol.</th>
       '^FO,31^FS',/
+
            <th>Ej.</th>
      '^FT97,72^A0N,25,43^FH^FD'v1000^b[1]'^FS',/
+
            <th>Ubicac.</th> 
      '^FO,31^FS',/
+
            <td>F.Devolucion</th>
      '^FT97,103^A0N,25,43^FH^FD'v1000^c[1],'^FS',/
+
          </tr>'
      '^FO,31^FS',/  
+
      (if p(v101) then  
      '^FT97,134^A0N,25,43^FH^FD'v1000^d[1]'^FS',/
+
          '<tr><td bgcolor=white>'v101^n'</td>'
      '^FO,31^FS',/,
+
              '<td bgcolor=white>'v101^t'</td>'
      if p(v1000^d) then '^FT97,165^A0N,25,43^FH^FD' else '^FT97,134^A0N,25,43^FH^FD' fi,
+
              '<td bgcolor=white>'v101^m'</td>'
      if a(v900^m) and a(v900^e) then |Ej. |v900^l, else
+
              '<td bgcolor=white>'v101^l'</td>'
          if a(v900^m) and p(v900^e) then |T. |v900^e,| Ej. |v900^l else
+
              '<td bgcolor=white>'v101^o'</td>'
              if p(v900^m) then |Vol. |v900^m, | T. |v900^e,|  Ej. |v900^l
+
              '<td bgcolor=white>',
              fi,
+
                    REF->trans(L->trans('TR_P_'v101^n),
          fi,
+
                          '<span style="color:#990000">'v40*6.2"/",v40*4.2"/", v40*0.4' 'v45'</span>')
      fi,'^FS',/
+
              '</td></tr>'  
      '^FO,31^FS',/
+
        fi/)
      if p(v1000^d) then '^FT97,196^A0N,25,43^FH^FD' else '^FT97,165^A0N,25,43^FH^FD' fi,
+
      '</table>'
      if p(v1000^f) then v1000^f fi'^FS',/
+
  fi
      '^FO,31^FS',/
+
  if e1-e2>0 then
      '^FT97,196^A0N,25,43^FH^FD'v1000^k'^FS',/
+
       `<a href='javascript:Reservar("`V2`","biblo","N")'>Reservar</A>`
      '^BY3,3,86^FT501,145^BCN,,N,N',/
+
   fi</nowiki>
      '^FD>'v900^n'^FS',/
 
      '^FO,27^FS',/
 
      '^FT498,36^A0N,22,28^FH^FDBIBLIOTECA XXXXXX^FS',/
 
      '^FO,23^FS',/
 
      '^FT596,168^A0N,19,33^FH^FD',v900^n,'^FS',/
 
       '^PQ1,0,1,Y^XZ',<strong>/'%%%'</strong>
 
   fi/)
 
  
  <strong>'*INV*'v900^n'*INV*'</strong>,
+
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.
  debe aparecer obligatoriamente al inicio de cada ocurrencia ya que de esta forma el proceso puede identificar el número de inventario
 
  correspondiente para determina si se incluye o no en los listados por rango o por número de inventario
 
  
  Note que el número de clasificación se agrega al campo 1000 y luego esa etiqueta se menciona en el grupo repetible utilizando
+
El formato mostrado en el ejemplo muestra las existencias de la siguiente manera:
  siempre la primera ocurrencia del mismo
+
[[File:Reservar 3.png|marco|centro]]
  
  <strong>/'%%%'</strong>
 
  Marcador para separar las distintas ocurrencias generadas por el formato
 
  
  '''Si lo desea el formato puede suministrarse como una pft externa utilizando @''nombre_del_formato''.pft'''
+
==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:
|valign=top| Alto de la etiqueta ||valign=top| Alto en centímetros de la etiqueta. Este valor será convertido a '''em''', multiplicándolo por '''2.37106301584''' a efectos del cuadre en la impresora.
 
|-
 
|valign=top| Ancho de la etiqueta ||valign=top| Ancho en centímetros de la etiqueta. Este valor será convertido a '''em''', multiplicándolo por '''2.37106301584''' a efectos del cuadre en la impresora.
 
|-
 
|valign=top| Número de etiquetas por línea ||valign=top| Para páginas con más de una etiqueta por línea
 
|}
 
  
Cada tipo de etiqueta o rótulo tendrá su propio archivo de configuracion.
+
      <nowiki>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()     
 +
      }</nowiki>
  
==Ejemplos de salidas==
+
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'''.
===Códigos de barras===
 
Archivo de configuración:
 
  classification_number_pref=ST_
 
  classification_number_format=if p(v82^a) then v82^a,"."v82^b"."v82^c,"."v82^d,"."v82^e, else v82^b,"."v82^c,"."v82^d,"."v82^e fi
 
  inventory_number_pref=NICLA_
 
  inventory_number_format=if f(val(v900^n),1,0) = v900^n then replace(f(val(v900^n),5,0),` `,`0`), else v900^n fi
 
  inventory_number_pref_list=NI_
 
  inventory_number_display=v900^n
 
  label_format=@barcode.pft
 
  label_format_txt=@barcodetxt.pft
 
  height=4
 
  width=7
 
  cols=3
 
  
 +
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.
  
Resultado:
+
==Procesamiento de la reserva==
[[File:Barras display.png|marco|centro]]
 
  
===Lomos===
+
[[File:Estadodecuenta_web3.png|marco|izquierda]]
Archivo de configuración:
 
  classification_number_pref=ST_
 
  classification_number_format=if p(v82^a) then v82^a,"."v82^b"."v82^c,"."v82^d,"."v82^e, else v82^b,"."v82^c,"."v82^d,"."v82^e fi
 
  inventory_number_pref=NICLA_
 
  inventory_number_format=if f(val(v900^n),1,0) = v900^n then replace(f(val(v900^n),5,0),` `,`0`), else v900^n fi
 
  inventory_number_pref_list=NI_
 
  inventory_number_display=v900^n
 
  label_format=@lomos.pft
 
  label_format_txt=@lomos_txt.php
 
  height=3
 
  width=5
 
  cols=4
 
  
  Ejemplo del formato '''lomos.pft'''
+
{| class="wikitable"
  <nowiki>
+
|-
  (if p(v900^n) then
+
| (1) || Logo que se especifica bajo el parámetro LOGO_OPAC del archivo de configuracion '''abcd.def'''  
    '*INV*'V900^n'*INV*'
+
|-
    '<center><br><strong><span style="font-size:20px; font-face=arial">',
+
| (2) || Mensaje identificado como '''iah_usuario_reserva''' en el archivo de mensajes '''prestamo.tab'''.  
    if p(v82^a[1]) then
+
Puede editar este mensaje colocando etiquetas HTML para ampliar la información que desea transmitir al usuario
        v82^a[1], |.|v82^b[1],|<br>|v82^c[1],|<br>|v82^d[1],"<br>"v82^e[1],
+
|-
    else
+
| || El color de fondo de la ventana se obtiene a partir del parámetro '''BG_WEB=#ffffff''' del archivo [[Abcd.def]]
        v82^b[1],|<br>|v82^c[1],|<br>|v82^d[1],|<br>|v82^e[1] ,
+
|}
    fi 
 
    '<br>',
 
    if a(v900^m) and a(v900^e) then
 
        |Ej. |v900^l,
 
    else
 
        if a(v900^m) and p(v900^e) then
 
          |T. |v900^e,| Ej. |v900^l
 
        else
 
          if p(v900^m) then
 
              |Vol. |v900^m, | T. |v900^e,|  Ej. |v900^l /
 
          fi,
 
        fi,
 
    fi,
 
    '%%%',
 
  fi/)
 
</nowiki>
 
  
Resultado:
 
[[File:Lomos display.png|marco|centro]]
 
  
===Etiquetas===
+
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.
Archivo de configuración:
+
<p><br>
  classification_number_pref=ST_
+
Si no se puede reservar se presenta una ventana con el resultado indicando la causa del rechazo
  classification_number_format=if p(v82^a) then v82^a,"."v82^b"."v82^c,"."v82^d,"."v82^e, else v82^b,"."v82^c,"."v82^d,"."v82^e fi
+
[[File:Reservas_web2.png|marco|izquierda]]
  inventory_number_pref=NICLA_
+
{| class="wikitable"
  inventory_number_format=if f(val(v900^n),1,0) = v900^n then replace(f(val(v900^n),5,0),` `,`0`), else v900^n fi
+
|-
  inventory_number_pref_list=NI_
+
| (1) || Logo que se especifica bajo el parámetro LOGO_OPAC del archivo de configuracion '''abcd.def'''
  inventory_number_display=v900^n
+
|-
  label_format=@etiquetas.pft
+
| (2) || Identificación del usuario con el formato definido en la configuración de la base de datos de usuarios
  label_format_txt=@etiquetas_txt.php
+
|-
  height=5
+
| (3) || Mensaje identificado como '''rsvr_hlp''' en el archivo de mensajes '''prestamo.tab'''
  width=10
+
|-
  cols=2
+
| (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)
  
  Ejemplo del formato '''etiquetas.pft'''<nowiki>
+
|-
  ('<table><tr><td valign=top align=center width=50>'
+
| || El color de fondo de la ventana se obtiene a partir del parámetro '''BG_WEB=#ffffff''' del archivo [[Abcd.def]]
      '*INV*'V900^n'*INV*'
+
|}
      if a(v82[1]) and a(v84[1]) then ' ' fi,
 
      if p(v82^a[1]) then
 
        v82^a[1], |.|v82^b[1],|<br>|v82^c[1],|<br>|v82^d[1],"<br>"v82^e[1],
 
      else
 
        v82^b[1],|<br>|v82^c[1],|<br>|v82^d[1],|<br>|v82^e[1] ,
 
      fi,
 
      '<br>'
 
      if a(v900^m) and a(v900^e) then
 
        |Ej. |v900^l,
 
      else
 
        if a(v900^m) and p(v900^e) then
 
          |T. |v900^e,| Ej. |v900^l
 
        else
 
          if p(v900^m) then
 
              |Vol. |v900^m, | T. |v900^e,|  Ej. |v900^l /
 
          fi,
 
        fi,
 
      fi,
 
      '</td><td valign=top width=220><br>'v100^a[1] if p(v100^a[1]) then '<br>' fi,v245^a,
 
      '</td><td width=50 valign=top align=right>'V900^n
 
      '</TD></tr></table>%%%'/
 
  )
 
  </nowiki>
 
Resultado:
 
[[File:Etiquetas display.png|marco|centro]]
 
  
==Enviar a==
+
<hr>
Se determina el medio al cual van a enviarse las etiquetas emitidas de acuerdo a las siguientes posibilidades:
+
Si la reserva procede se presenta el botón correspondiente para formalizarla:
 +
[[File:reservas_web1.png|marco|izquierda]]
  
'''Pantalla'''
+
{| class="wikitable"
:Envía la salida generada a la pantalla del equipo. Puede utilizar la opción '''Imprimir''' del menú del navegador para obtener una copia impresa; en este caso debe '''configurar la impresora''' para establecer los márgenes y eliminar todos los encabezamienos de la página
+
|-
 
+
| (1) || Logo que se especifica bajo el parámetro LOGO_OPAC del archivo de configuracion '''abcd.def'''  
 
+
|-
'''Documento MsWord'''
+
| (2) || Identificación del usuario con el formato definido en la configuración de la base de datos de usuarios
:Envía la salida a un procesador de palabras. Se ha probado con éxito en OpenOffice. Una vez desplegado el documento en el procesador de palabras debe establecer los márgenes del mismo
+
|-
 
+
| (3) || Mensaje identificado como '''rsvr_hlp''' en el archivo de mensajes '''prestamo.tab'''
 
+
|-
'''Txt'''
+
| (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'''
:Use esta opción para generar un archivo de intercambio con otro software que desee utilizar para imprimir las etiquetas generadas. En este caso '''ABCD''' utilizará el formato establecido bajo '''Formato de despliegue (PFT). Enviar a TXT''' en el archivo de configuración correspondiente.
+
|-
 +
| (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]]
 +
|}
  
==Selección de los registros==
 
En este apartado se define el método a utilizar para extraer los registros de la base de datos según las siguientes posibilidades:
 
===Por número de clasificación===
 
Utiliza los parámetros '''Prefijo del número de clasificación en la FST''' y '''Formato para localizar el número de clasificación''' para presentar la lista de números de clasificación. Seleccione de la misma el rango desde y hasta que desee extraer. Se generará una etiqueta para cada número de inventario contenido en cada registro del rango seleccionado.
 
  
===Por rango de números de inventario===
 
Utiliza los parámetros '''Prefijo del número de inventario en la FST''' y '''Formato para localizar el número de inventario''' para presentar la lista de números de clasificación. Seleccione de la misma el rango desde y hasta que desee extraer. Se generará una etiqueta para cada número de inventario contenido en cada registro del rango seleccionado.
 
  
Recuerde las consideraciones ya explicadas anteriormente para presentar una lista de números de inventario debidamente ordenada.
+
y luego se presenta el resultado del proceso el cual incluye el estado de cuenta del usuario
 +
[[File:Reservar 5.png|marco|centro]]
  
===Por lista de números de inventario===
 
Utiliza los parámetros '''Prefijo número de inventario (no editado)''' y '''Formato del número de inventario  (no editado)''' para construir la búsqueda que localiza la lista de números de inventario.
 
  
===Por rango de Mfn===
+
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.
Lee cada uno de los registros del rango de Mfns solicitado. Se generará una etiqueta para cada número de inventario contenido en cada registro del rango seleccionado.
 

Latest revision as of 21:27, 6 January 2020

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: centro


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

izquierda

(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 izquierda

(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: izquierda

(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 centro


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.