Módulo para Digitalización de Documentos El propósito de este módulo es brindar la ayuda a los diferentes usuarios para realizar el escaneo y almacenamiento de diferentes tipos de documento y las consultas necesarias para facilitar su acceso. Un usuario se encargará de escanear y almacenar en una localización del disco del servidor (llamada ubicación temporal), los siguientes documentos: o F-acturas. o P-edidos (Picking y/o alistos). o D-evoluciones. o R-ecibos. Para identificar cada tipo de documento almacenado en disco el usuario debe utilizar el primer carácter de cada uno de los documentos anteriormente mencionados y el número de documento que identifica en forma única a cada uno. Por ejemplo la factura número cinco mil tendrá en el siguiente nombre de archivo: F5000.jpg. El sistema tendrá una opción que tomará todos estos tipos de documentos que se registraron en los sistemas SGE desde la última vez (fecha y hora) en que se ejecuto este proceso a la fecha y hora que el usuario le indique (hasta fecha y hora de los documentos que escaneo). El sistema buscará en la localización del disco donde el usuario escaneo los documentos y asociará cada documento del SGE con el archivo fisico que le corresponde según la nomenclatura que se sugerimos anteriormente (ej. F5000. jpg). El usuario podrá revisar en la ubicación temporal del disco cuales archivos quedaron pendientes de asociar y también podrá consultar en el módulo a cuales documentos no se les asocio archivo. Si el usuario desea sustituir algún archivo simplemente lo vuelve a escanear y lo guarda en la ubicación temporal. Se llevará una bitácora de los diferentes momentos en que un archivo fue sustiuido. Se tendrán tres tipos de consultas para acceder a los archivos escaneados: o conge General: En el cual el usuario selecciona cual tipo y número de documento desea consultar. o concl Por Cliente: Se presentará la información del cliente y un tab para cada uno de los tipos de documentos escaneados. o connu Documentos sin imagen: Mostrara los documentos con el archivo nulo. Tablas DigDocumentos(Cia, sucursal, documento, tipo(F,P,D,R), referencia, archivo, fechareg, usuario); Facturas (referencia es el pedido) Pedidos (referencia es el alisto) Devolucion (referencia es la factura) Recibo (referencia es nula) DigHistotico (cia, sucursal, documento, tipo, archivo, fechareg, usuario) DigSellos (cia, tipo, timestamp) Procesos Levantado automatico: 1) Se marca un timestamp inicial si es necesario! 2) Se registra en Digdocumentos todos los documentos registrados a partir de timestamp con archivo null y con referencia la que corresponda. 3) Se actualiza timestamp con el de fin de proceso! Asociacion automatica: Se busca en el directorio temporal todos los archivos. Si el archivo coincide con un documento se anota en el campo archivo Se mueve el archivo de teporal a definitivo. Caso contrario no se hace nada. Digitado manual (reg) Se puede ingresar manualmente un registro en digdocumentos. Asociacion manual (reg) Igualmente a un documento se le puede asociar un nombre de archivo simpre que este exista en el directorio temporal. El proceso debe mover el archivo al directorio definitivo. Historico (his) Cada que se registra o actualiza el campo archivo debe quedar en la bitacora. drop table digdocumentos; drop table dighistorico; drop table digsellos; drop table digparametros; Create table DigDocumentos ( Cia char(3) not null, sucursal char(3) not null, tipo char(1) not null constraint DigDocumentos_tipo_ck check (tipo in ('F','P','D','R')), documento number(10) not null, referencia number(10), cliente varchar2(25) not null, archivo varchar2(60), constraint digdocumentos_pk primary key(documento, tipo, sucursal, cia) ); Create table DigHistorico ( Cia char(3) not null, sucursal char(3) not null, tipo char(1) not null constraint DigHistorico_tipo_ck check (tipo in ('F','P','D','R')), documento number(10) not null, archivo varchar2(60) not null, fechareg date not null, usuario varchar2(30) not null, constraint dighistotico_pk primary key(documento, fechareg, tipo, sucursal, cia) ); Create table DigSellos ( Cia char(3) not null, tipo char(1) not null constraint DigSellos_tipo_ck check (tipo in ('F','P','D','R')), sello date not null, constraint digsellos_pk primary key(tipo, cia) ); Create table DigParametros ( Cia char(3) not null, dirtemporal varchar2(80) not null, dirfinal varchar2(80) not null, constraint digparametros_pk primary key(cia) ); CREATE OR REPLACE TRIGGER DigHistorico AFTER INSERT OR UPDATE of archivo on DigDocumentos FOR EACH ROW BEGIN If Inserting Then insert into dighistorico (cia, sucursal, tipo, documento, archivo, fechareg, usuario) values (:new.cia, :new.sucursal, :new.tipo, :new.documento, :new.archivo, sysdate, user); elsif Updating then insert into dighistorico (cia, sucursal, tipo, documento, archivo, fechareg, usuario) values (:new.cia, :new.sucursal, :new.tipo, :new.documento, :new.archivo, sysdate, user); end if; END; /