Table of Contents

Generación automática de números de inventario

Documento creado el 18 de agosto de 2007, motivado por una inquietud de la Biblioteca Rivadavia. Es solamente un esbozo de cómo podría implementarse esta funcionalidad. ¿Alguien interesado en completar el trabajo?

Cambios a realizar en Catalis 2005.06.09 para poder generar automáticamente el número de inventario.

Sugerencia: sería útil también que se pudieran generar diferentes formatos de inventario. Las colecciones de materiales especiales o no librarios suelen tener asociado el tipo de material al número de inventario. Ej.: CD0001. — Claudia 2009/09/11 10:40

editEjemplares.htm

Agregamos un botón que permita solicitar un nuevo número de inventario. El botón sólo debe estar disponible cuando se crea un nuevo ejemplar, y sólo si la funcionalidad está habilitada en catalis.conf.

<tr>
    <td class="ejLabel">Inventario</td>
    <td>
        <input id="inventario" type="text" size="10" style="background: #FF9;">
        <button id="obtenerInventario">Obtener inventario</button>
    </td>
</tr>

Creamos un manejador para el evento click del botón:

document.getElementById("obtenerInventario").onclick = function() {
    // llama a catalis.xis para solicitar un nro. de inventario   
}

catalis.xis

Agregar al cipar:

'INVENTARIO.TXT=',v6003^b,'/catalis/',v2104,'/inventario.txt'/
'INVENTARIO.HTM=',...

Agregar tarea:

<!-- ----------------------------------------------------------------- -->
<label>DISPATCH</label>
<!-- ----------------------------------------------------------------- -->
<!-- Tareas a realizar por el script -->
<field action="replace" tag="2101"><pft>
    ...
    '~NEW_INVENTARIO'      /* genera un nuevo nro. de inventario */
    '~',
</pft></field>
  
<!-- ----------------------------------------------------------------- -->
<label>NEW_INVENTARIO</label>
<!-- ----------------------------------------------------------------- -->
<include>catalis/xis/generar-inventario.xis</include>
<flow action="jump">END</flow>

generar-inventario.xis

<!-- Generamos numero de inventario -->
<!-- ATENCION: definir correctamente la regla a utilizar -->
<field action="replace" tag="1"><pft>
    replace(s(f(val(cat('INVENTARIO.TXT'))+1,6,0)),' ','0')
</pft></field>

<!-- Guardamos el nuevo numero en el archivo inventario.txt -->
<file action="create" type="output">INVENTARIO.TXT</file>
<display><pft>v1</pft></display>
<file action="close" type="output">INVENTARIO.TXT</file>

<!-- Enviamos el nuevo numero al cliente -->
<display><htmlpft><pft>cat('INVENTARIO.HTM')</pft></htmlpft></display>

inventario.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- 
    ===========================================================================
    inventario.htm

    Esta pagina va al IFRAME oculto.
    Trae desde el servidor un numero de inventario.
    Al cargarse, invoca a la funcion que presentara los datos en la pantalla.
    
    (c) 2007 Fernando J. Gomez - INMABB - CONICET
    ===========================================================================
-->

<html>
<head>
    <title></title>
    <script type="text/javascript">
        function init() {
            parent.showInventario(inventario);
        }
        
        window.onload = init;
    </script>
</head>
<body><!-- empty body --></body>
</html>

catalis.js

Agregamos una función que presenta el nro. de inventario en el formulario de existencias:

// -----------------------------------------------------------------------------
function showInventario(inventario)
// 
// -----------------------------------------------------------------------------
{
    // coloca el valor en el input
    document.getElementById("inventario").value = inventario;
    // readonly?
}