Estoy en la etapa media de desarrollo de un sistema web de stock en PHP.

 

¿Por qué en PHP y porque web?

 

Para reducir al mínimo los costos en materia de infraestructura de software – y por que no, de hardware – .  

 

Respecto al hardware:

 

El sistema apunta a trabajo en red a modo de web interna, o como suele llamarse: “Intranet”.

De esta forma, y considerando el uso de php, es muy sencillo montar un servidor en una maquina de medianos recursos para servir al resto de las terminales  (también de recursos medianos). Si consideramos que para navegar en Internet de manera cómoda, no necesitamos una maquina potente, una Web interna liviana es capaz de aprovechar al máximo las computadoras viejitas. Esto se traduce en ahorro de hardware.

 

Una pregunta perdida y encontrada: ¿no se cae en riesgo de que las maquinas queden obsoletas?

 

Al decir verdad no. Una de las caracteristicas de la “tecnología” web es justamente esa: gran capacidad y prestaciones con pocos recursos, en la vanguardia de lo que son los sistemas actuales.

 

De hecho, si entramos a considerar que los bancos y grandes empresas volcaron hace años todos sus sistemas a la plataforma web, estaríamos en condiciones, mas que sobradas, de implementar un sistema web de stock en una red de computadoras de no tan potentes sin caer en obsolescencia.

 

Sobre el software:

 

Por que PHP y no ASP?

 

- En primer lugar PHP  es un lenguaje multiplataforma. Se pueden armar redes con sistemas operativos libres a muy bajo costo.

 

Traducción= se puede usar tanto con Windows (hay que pagar para usarlo) y con Linux (no hay que pagar). 1er. Punto a favor.

 

- PHP es libre.

 

Traducción= no hay que pagar por su uso. Por lo tanto, quien desarrolla en php puede valerse de una infinidad de tutoriales, scripts prearmados (codigos que realizan una tarea especifica) y una comunidad enorme en Internet que lo usa y lo hace día a día mas popular. ASP tiene licenciamiento. Hay que pagar. 2do. Punto a favor.

 

- Tengo mas conocimiento de PHP que de ASP

 

Traducción= Nunca me esforcé por aprender a usar ASP en profundidad. De hecho, ASP no me gusta. No se si es a favor o en contra.

 

Sin necesidad de Windows y con un lenguaje de programación libre, ademas del hardware, ya vamos ahorrando varios miles de pesos.

 

Sobre el sistema

 

Ya aclarado algunos puntos preliminares, paso a explicar como funciona un poco la web de stock (aunque prefiero llamarlo sistema, ya que es un conjunto de partes que interactúan para lograr un fin especifico= ordenar y gestionar un almacén)

 

En principio, el corazón del sistema es una base de datos gestionada a traves de MYSQL. No hay ningún secreto. Esta base de datos está en el servidor (ver lo que escribí mas arriba sobre el Hardware) y se “comparte”, (o le “presta datos”) a las terminales.

 

La base de datos contiene diferentes tablas que almacenan, por un lado, toda una biblioteca con los codigos de articulos con los que se trabaja.

 

Otra tabla contiene el stock propiamente dicho. Es decir, es la tabla donde se vincula el codigo de un articulo con su existencia fisica. Sobre esta tabla es en donde mas se trabaja, dado que aquí se generarán los ingresos, egresos y bajas de stock, en definitiva, todos los movimientos relacionados con un almacén.

 

¿Como facilitar estos movimientos?

 

A traves del uso de codigos de barras. Es, creo yo, lo mas accesible y eficiente a la hora de realizar tareas como estas. Hay otros sistemas, por ejemplo,  de “chips RFID” pero su implementacion es un tanto (por no decir astronómicamente) mas costosa, ya que implica lectores mas complejos y por ende, mas costosos. Un lector laser de mediana calidad ronda los 150 dólares. Lógicamente, hay otros tipos de lectores, los infrarrojos, los CCD. A mi parecer, los láser son los mas eficientes en cuanto a rango, distancia y velocidad de lectura.

 

De esta manera, el departamento de recepcion, se limita a “flashear” con la pistola lectora los productos que compran y que tienen ingreso al almacen. El codigo de barras se decodifica, se busca en la tabla que articulo es, y se suma 1 al stock de dicho articulo.

 

Desagregación:

1.- Tener previamente los codigos cargados en el sistema puede ser un tanto engorroso

2.- Ir cargando a medida que ingresan los articulos.

 

Creo que la opcion 2 es la mas eficiente. No podemos contemplar todo lo que entra a un almacen, aun cuando se tiene pleno conocimiento de lo que se compra y las compras sean reiterativas. De esta forma, lo ideal es contar con una base de datos estandar, con los productos mas frecuentes y en ocasión de ingresar articulos no registrados anteriormente, el sistema brinda la opcion al operador de ingresar las caracteristicas de ese producto.

 

Ingresados los productos en el almacen y actualizado el stock el resto de las terminales tiene acceso a los mismos y está en condiciones para empezar a realizar moviemientos sobre un producto “X”, sea por ejemplo, el traslado a un departamento especifico, a otra sucursal o bien, la venta. Por lo tanto, en este paso, basta con “flashear” nuevamente en producto para marcar su salida.

 

El hecho de tener una base de datos centralizada, permite al administrador del almacen desde un solo lugar condicionar un producto para el resto de las terminales. Por ejemplo, realizo un cambio de precio y esto estará disponible instantáneamente en cualquiera de las bocas de expendio. Además, de poder tener acceso a datos importantísimos que hacen al manejo del stock, como ser:

-         manejar puntos de re-pedido

-         establecer stock minimos, de seguridad, etc.

-         automatizar el seguimiento de bienes

-         obtener “estadisticas” referidas al movimiento de un producto en particular

 

Un punto fuerte de este sistema es la conectividad con Internet. En forma casi instantanea el sistema puede tener acceso a la web, y por ejemplo automatizar la tarea de pedido a un proveedor tras alcanzar un punto de reposicion, por ejemplo a traves del envio de un mail.

 

Posibilidades de implementacion:

 

1.- Por un lado, esta la posibilidad de implementación tal como lo describí hasta ahora.

Esto implica tener una “mini Internet”, se necesita una computadora que oficie de “servidor”, es decir, que almacene el sistema y provea acceso y proceso de los datos a las terminales. A esta red, se le pueden acoplar tambien otros sistemas sin perder eficiencia, como ser de contabilidad, facturación, etc. etc., siguiendo el principio de desarrollo de este sistema de stock.

 

Generalmente la mayoría de las empresas cuentan con una red interna que en el 99% de los casos cumple la tarea de proveer Internet a varias computadoras. El sistema es perfectamente adaptable a ella y aprovecha esta infraestructura instalada.

 

2.- Colocar el sistema en un servidor externo. Esto es lo convencional en Internet. Cuando escribimos www.google.com.ar en el navegador, estamos accediendo a una computadora en quien sabe que lugar del mundo. El sistema web instalado en un servidor externo sigue ese principio, de hecho, el sistema seria como un sitio web convencional.

 

¿Cualquiera puede acceder a mi sistema si está en Internet?

 

En principio si. Y esta aparente falta de seguridad es lo que le da tal vez la mayor fortaleza a este desarrollo. Lógicamente que cualquier no podrá acceder y agregar productos. Para ello, y como está  previsto también en la versión de “sistema interno” se crean usuarios. El sistema es siempre el mismo, la diferencia es otorgada por la “jerarquia del usuario”.

 

Cada persona con sus datos de acceso, tendrá la posibilidad de acceder a la parte del sistema para la cual está habilitada. Un ejemplo bastante sencillo seria en donde un cajero, solo tendra habilitada la tarea de dar salida al stock, mientras que el encargado de almacen puede dar entradas y salidas, mientras que el administrador, puede dar ingreso, salida, cambio de precios.

 

Solo accederá quien tenga los datos de acceso. Y tras registrar su ingreso, tendra acceso solo a la parte que le corresponde.

 

¿La ventaja de esto?

Puedo acceder a los datos de mi almacen en forma segura desde cualquier computadora del mundo.

 

¿La desventaja?

No tenemos “fisicamente” el servidor bajo nuestro resguardo dentro de la empresa.  Y pueden suscitarse muy aisladamente roblemas de disponibilidad del mismo. Por ejemplo el tipico problema de “No se encuentra disponible la pagina solicitada”.

 

Lógicamente, este servicio de hospedaje según la empresa que se contrate varia en cuanto a precios y a calidad, incluso hay posibilidades de hospedar este sistema en servidores extranjeros, pero esto ya seria un poco mas costoso.

 

Algunos datos algo más técnicos

 

El sistema está desarrollado (está siendo desarrollado) bajo PHP, con gestión de base de datos con MYSQL y corriendo en EASYPHP (es el programa que “transforma” a la computadora en un servidor) que contiene el servidor Apache, el gestor de base de datos mysql y  Phpmyadmin.

 

La gestión de usuarios se realiza a través de sesiones, lógicamente el usuario de mayor jerarquía puede crear usuarios de menor jerarquía, dar y revocar permisos a ciertos módulos.

 

Todas las terminales pueden tener su lectora de códigos de barras, incluso el sistema mismo incorpora un modulo para generar e imprimir códigos de barra.

 

El uso de un lector de código de barras no es complicado. Simula ser el teclado de la computadora. Por ejemplo si abrimos el Word y apuntamos a un código de barras, veremos como en el lugar que está situado el cursor se transcribirá una serie de numeros.

 

Es importante destacar que la pistola, no entiende el código numérico, solo se limita a leer una imagen de una etiqueta, descifrarla y traducirla a números. Por lo tanto, la pistola es solo un dispositivo de entrada. De hecho, el sistema es totalmente funcional con un teclado común, claro está que habrá que estar tapeando los numeritos, con los consiguientes errores y perdida de tiempo que esto conlleva.

 

De esta manera, el lector de codigos de barras elimina la necesidad de tipear, perder tiempo tipeando, y eliminar los errores.

 

Que diferencia hay entre los lectores laser, los infrarrojos y los ccd, que tipos de codificacion existen  y cuales son las caracteristicas de este sistema:

 

Para no extenderme mas recomiendo visitar esta pequeña guia: INGRESAR

 

Para finalizar

 

Creo que he plasmado las funciones principales y los conceptos mas importantes de lo que estoy desarrollando, lógicamente, luego incorporaré mas material “tecnico” referido a la programación del sistema y seguramente lo que mas interesa, la interfaz para captar los datos desde el lector de codigo de barras.

 

Feliz 1º de Mayo para todos.