sábado, 29 de enero de 2011

POS: Sistemas ERP y Puntos de Venta


POS es el acrónimo de Point Of Sale, lo que en español significa Punto de Venta. 
¿Qué es un Punto de Venta?.

Un Punto de Venta, según los amigos de la Wikipedia, es la localización donde una transacción ocurre, es decir, una venta. En este  lugar el cliente entrega su dinero contante y sonante y a cambio recibe un producto.

Los Puntos de Venta son inherentes a las tiendas comerciales, aquellas que obtienen beneficios a través del flujo "Comprar->Almacenar->Vender al Menudeo" y no del "Producir->Almacenar-> Vender al Mayoreo", propio de las empresas industriales; pues, no es lo mismo vender, en un día,  1000 productos diferentes a 1000 clientes diferentes, a un facturación promedio por cliente de $ 20.00, que vender, en un mes, 5 productos diferentes a 5 clientes diferentes a una facturación promedio por cliente de $200 000.00.


Al cliente de los $ 20.00, se le cobra al contado y se le entrega lo comprado al momento. Al cliente de los $200 000.00 se le cobra al crédito, se le entrega lo comprado por partes y en Navidad se le envía, envuelto en papel de regalo, una botella de vino cosecha 1990.


Los Puntos de Venta deben ser flexibles y rápidos. Para que cumplan tales requisitos deben concentrar, en la medida de lo posible, los aspectos propios de una transacción presencial con el cliente, los cuales son: recepción del dinero, entrega de la boleta de pago, entrega de la mercancia y, en caso corresponda, descuento del bien del stock del Almacén.

Los sistemas ERPs han plasmado el concepto de Punto de Venta en una amplia gama de soluciones, que se pueden apreciar en todo su potencial en los lugares de concurrencia masiva como son supermercados y cines.

Físicamente, la recepción del dinero a sido traducido en lectoras de Tarjetas (crédito y débito), máquinas cajeras. etc. La entrega del comprobante de pago, principalmente, ha sido plasmado en pequeñas impresoras incorporadas al equipo de trabajo del operador del Punto de Venta. La entrega de productos en forma presencial, desde el punto de vista tecnologico, no ha sufrido muchos cambios. Finalmente, el concepto de control del stock del Almacén en tiempo real ha sido capturado y plasmado en una serie de arquitecturas, entre las que destacan, actualmente, la del Cliente-Servidor.

En el mismo instante en que el cliente ha pagado y se presta a retirarse con lo que ha comprado, el gerente de la tienda puede saber cuánto dinero hay actuamente en la caja, las existencias del almacén, asi como, basado en los historiales de compra, la probabilidad de que ese cliente, que acaba de irse, regrese.

Es la magia de la informática.

sábado, 15 de enero de 2011

Venta POS Order : El Procedimiento ADempiere


¿Cuál es la razón de una empresa?, vender. Se vende productos; se vende servicios; se vende imagen; se vende sueños; se vende ideas; todo es susceptible de ser vendido.

En ADempiere, la venta tipo POS Order representa al realizado por el típico cliente que va a una tienda, escoge algo, lo paga y lo lleva. Este cliente llega, consume y se va, sin mas relaciones con la tienda que su nombre registrado en una boleta de venta.

Como en un artículo anterior, volveremos a hechar mano del cliente Joe Black. No debemos olvidar de poner en marcha el servidor ADempiere antes de comenzar nuestra pruebas.
Nota: En la base de datos de ejemplo que viene pre-instalado en ADempiere, la organización Fertilizer no está completamente configurada, por lo que, para no tropezarmos con errores del tipo "Periodo Cerrado" y "Factura: NoCashBook", habrá que revisar el artículo que habla sobre este asunto.


Caso práctico : Joe Black se presenta a Fertilizer, tienda de jardinería, y compra  2 manuales titulados "Como plantar". El vendedor de la tienda debe registrar la venta, el ingreso de dinero, así como la salida de dichos productos del Almacén. El pago es al contado y la entrega es inmediata.

Una venta de este tipo, en ADempiere, es llamada POS Order (Orden de Punto de Venta) y permite realizar, a través de un único proceso, la facturación y el despacho de un grupo de productos comprados. Los pasos son los siguientes:

Arrancamos el aplicativo, que puede ser via Navegador o Aplicativo remoto. En este caso, debido a su velocidad de respuesta, nos decantamos por el Aplicativo remoto.

Ir a   Menú -->  Cotización a factura --> Ordenes de Venta --> Ordenes de Venta.

Por defecto, se muestra las ordenes creadas hasta el momento, por lo que se tendrá que hacer click en el botón "Nuevo", ubicado en la esquina superior izquierda de la ventana, para crear un nuevo registro. Se rellena lo campos, en su mayoria autodescriptivos.

En la primera pestaña, "ORDEN", prestamos especial atención a los siguientes parámetros:
  • Organización: Se refiere a una entidad organizacional dentro de la compañia. La base de datos de ejemplo que viene con ADempiere 3.6 trae una compañia, GardenWorld, con 8 entidades: Fertilizer, Furniture, HQ, Store Central, Store East, Store North, Store South y STore West. Escogemos el valor "Fertilizer".
  • Nº del Documento: Se refiere al Identificador del documento. El sistema propone un número por defecto, pero se recomienda tener una numeración propia.
  • Tipo Documento Destino: Una venta origina varios movimientos, como son: ingreso de dinero a Caja, salida de un producto del almacén y emisión de una boleta de venta. Este campo nos permite escoger la manera en que registraremos esos movimientos. Escogemos la opción POS Order.
  • Una vez llenados al menos los campos obligatorios, antes de pasar a la siguiente pestaña, le damos click al boton "Guardar". 
En la segunda pestaña,"LINEA DE LA ORDEN", registramos los artículos que se está vendiendo, cuidando de lo siguiente:
  • Para registrar, en la orden, un nuevo artículo, hay que hacer click en el boton "Nuevo". 
  • A la hora de elegir un artículo, haciendo click en el boton junto al campo "Producto", hay que tener cuidado de extraer el artículo del almacén adecuado. Pues al haber, en GardenWorld, 8 entidades organizacionales, también hay por lo menos 8 almacenes, pues algunos, como HQ, cuentan con mas de uno.
  • Una vez llenados al menos los campos obligatorios, antes de pasar a la siguiente pestaña, le damos click al boton "Guardar".  
La tercera pestaña. "IMPUESTO DE LA ORDEN", lo veremos en una próxima oportunidad.

Rellenamos el resto de los campos según lo descrito en sus etiquetas; luego regresamos a la pestaña "ORDEN" y le hacemos Click al botón "COMPLETAR", ubicado en la parte inferior derecha; escogemos la opción "Completar" y aceptamos.


En mi caso, esta operación me ha originado los siguientes documentos: Una Nota de Despacho (Que mueve el Almacén) y Una factura (Que mueve la Caja).

La Factura y la Nota de Despacho son documentos que, originados por la Orden de Venta, certifican que la organización ha facturado una venta y despachado lo vendido.

miércoles, 12 de enero de 2011

"Periodo Cerrado" y "Factura: NoCashBook", piedras en el camino ADempiere.

En el artículo anterior vimos algunas consultas en ADempiere que, en este artículo, pretendía continuar, realizando  pruebas de una venta directa, es decir: llega el cliente, pide un producto, paga el precio completo y se lleva lo comprado.

Para no alargar mas el tema, sólo les diré que estaba creando una Orden de Venta de tipo POS Order, documento que permite facturar y despachar al mismo tiempo, y me apareció el primer error : "Periodo cerrado".

¿Periodo cerrado?. Este mensaje se refiere al Año fiscal, ¿Qué es un año fiscal?, es un periodo de 12 meses usado para calcular informes financieros anuales. Este periodo comienza normalemnte el 1 de Enero y termina el 31 de Diciembre del mismo año, sin embargo, hay empresas en las que, debido a su forma de administración, empieza el 1 de Julio y termina el 30 de Junio del próximo año. ¿Cómo surge el problema?. Hay que crear un periodo antes de usarlo. En la base de datos semilla del paquete ADempiere 3.6, usado para nuestros ejemplos, sólo vienen creados los periodos del 2001 al 2009, por lo que, si quiero realizar una venta con fecha del 2010, no podré hacerlo. ¿Cómo lo soluciono?. Para solucionar este problema se  ingresa al sistema con una cuenta de administrador y se sigue los siguientes pasos:

1.- Ingresar al sistema con el usuario "GardenAdmin"  y el perfil "GardenWorld Admin".
2.- Ir a Menu --> Análisis de Desempeño --> Reglas Contables --> Año Calendario y periodo.



Una vez solucionado este primer problema, al momento de procesar la Orden, apareció el problema Nº 02: "Factura: NoCashBook".

¿Factura: NoCashBook?. Este mensaje se refiere a que no se ha creado el libro de caja de la organización, ¿Qué es el libro de caja?, es un libro contable en la que se registra todas las operaciones al contado que realiza una empresa, entendiendo como tales, aquellas donde intervienen dinero en efectivo y/o cheques bancarios.¿Cómo surge el problema?. La base de datos semilla de ADempiere 3.6 trae una compañia de ejemplo, GardenWorld, dividida en varias organizaciones de las cuales, sólo una, HQ, tiene su libro de caja creado y configurado. Si queremos vender al contado un producto de la organización Fertilizer, otra de las divisiónes de GardenWorld, no podremos hacerlo, puesto que el libro contable que registra dicho tipo de operación no ha sido creado.. ¿Cómo lo soluciono?. Para solucionar este problema se sigue los siguientes pasos:

1.- Ingresar al sistema con el usuario "GardenAdmin"  y el perfil "GardenWorld Admin". 
2.- Menu -->  Administración del Sistema --> Reglas de la Organización  --> Libro de Efectivo.



Finalmente en la primera ventana, se da click al boton Guardar y listo, problema solucionado.

Estos pequeños detalles deben ser tenidos en cuenta a la hora de realizar una nueva implementación, pues deberan ser revisadas al término de cada año fiscal, o al crear una nueva unidad organizacional en una implementación ya funcionando.

sábado, 8 de enero de 2011

Un Paseo con el Jardinero de Adempiere : Consultas


 El jardinero de Adempiere, por si alguién tiene curiosidad, no se refiere a uno de sus fundadores, que antes de ser programador se dedicaba a la jardinería, sino  a uno de los usuarios por defecto, de la base de datos semilla, que viene con el mencionado paquete ERP. 

Luego de haber instalado y puesto  en marcha el servidor Adempiere, procedemos a hacer las primeras pruebas como usuario; para el que utilizaremos una de las cuentas de ejemplo que vienen por defecto: 

Usage
User
Password
Sample Client User
GardenUser
GardenUser
                
En la barra de direcciones de algún navegador web (Mozilla Firefox en mi caso) escribimos la dirrección URL de nuestro servidor de aplicaciones (en mi caso,  http://pcjack). Si no saben qué nombre tiene su servidor, denle una mirada al Paso 5 del artículo "ADempiere: Instalación y Configuración del Servidor de Aplicaciones" . 

En la página cargada, escogemos la opción "Adempiere ZK webUI", e ingresamos los datos de nuestro usuario de prueba.


Una vez se haya cargado el entorno de trabajo del usuario GardenUser, nos centramos en la sección Views, que agrupa a un conjunto de consultas específicas.



Bastará darle una, no tan somera, mirada a una sola de las consultas, para entender el modo de funcionamiento de las demás.  La vista que usaremos para su revisión, debido a la combinación de unidades de información que maneja, es la de Facturas.


Consulta 1: Mostrar todas las facturas registradas.

Consulta 2: Mostrar todas las facturas registradas que cumplan ciertos parametros (Ejem. Facturadas a Joe Block). 

 Una vez terminado el paso 5, se obtiene como resultado todas las facturas emitidas sólamente a Joe Block.

Consulta 3: Ver los detalles de una de las facturas de Joe Block. 

Se toma como referencia la ventana resultado obtenida en la "Consulta 2".


Se obtiene como resultado:


El resto de consulta, como ya lo dijimos anteriormente, utiliza la misma lógica.

ADempiere también cuenta con una barra de herramientas con la que trataremos en casi todos las interacciones con el Sistema. Destacan los siguientes:




  1. Se usa para añadir una nuevo registro.
  2. Se usa para duplicar el valor de un registro existente a un nuevo registro.
  3. Se usa para actualizar los datos.
  4. Se usa para guardar.
  5. Se usa para borrar registros activos.
  6. Se usa para mostrar la informacion detallada de un solo registro.
  7. Se usa para ignorar los cambios hechos en un registro.
  8. Se usa para borrado multiple.
  9. Se usa para mostrar una lista de registros en modo rejilla.
En este artículo hemos consultado el detalle de facturas ya creadas anteriormente. Pero, ¿Cómo hacemos para emitir nuevas facturas?, ¿Cómo creamos nuevos clientes?, ¿Cómo creamos nuevos productos?, etc. Contestaremos esas preguntas en un próximo artículo.




sábado, 1 de enero de 2011

ADempiere: Creación de la Base de Datos y puesta en marcha del Sistema.

Continuando con  el artículo anterior, instalación del Servidor de Aplicaciones Adampiere, en esta ocasión, procederemoa a crear la base de datos  que usaremos para trabajar.

CREACION DE LA BASE DE DATOS

Antes que  la aplicación pueda ejecutarse, se debe crear una base de datos adecuada para el mismo. Esto se consigue, utilizando una base de datos semilla que, para tal efecto, viene incluida en el paquete Adempiere o, restaurando una base de datos previamente creadas.

Los 2 archivos semillas, Adempiere.dmp y Adempiere_pg.dmp , que vienen incluidos en la carpeta "Data" del paquete Adempiere, podrán ser importados a la base de datos escogida, Oracle para el primer archivo o PostgreSQL para el segundo,  a través del script "RUN_ImportAdempiere.bat", alojado en la carpeta "utils" del directorio raiz de Adempiere. Hay que tener mucho cuidado con este fichero, pues antes de crear las tablas en la base de datos definida para Adempiere, borrá todo lo que hay en ella, por lo que, si se tiene un sistema ya configurado, cuya pérdida significaría muchos dolores de cabeza, mejor sería alejarse de este archivo.

El mensaje "Presione cualquier tecla para continuar...", en la consola de linea de comandos surgida en el proceso anterior, indica que la creación de la base de datos ha concluido satisfactoriamente.

PUESTA EN MARCHA DEL SISTEMA 

Para poder acceder al servidor de Aplicaciones, hay que arrancarlo primero. Esto se logra ejecutando el archivo "RUN_Server2.bat" de carpeta "Utils", cada vez que se requiera arrancar el servidor.

La aplicación ADempiere corre como un cliente que se comunica con el Servidor de Aplicaciones ADempiere.Puede correr sobre una maquina remota o vía Interface Web:

EJECUTANDOSE VIA INTERFACE WEB
  
Para acceder al Servidor de Aplicaciones ADempiere desde un navegador, hay que apuntar el navegador a la URL del servidor  (http://<your server name, IP or URL>:<your port number>/admin .Ejem.: http://pcjack:80/admin)
EJECUTANDOSE SOBRE UNA MAQUINA REMOTA

Opcion 1: Web Start

  • De la página principal del servidor de aplicaciones, hacer click sobre el boton WebStart.

     

    Aceptar las preguntas de los cuadros de dialogo conforme van apareciendo. La aplicación arrancará una vez que se acepte los términos de la licencia. Se ingresa el usuario y password correspondiente y se mostrará una interface semejante a la de la figura inferior.




    Como punto final, la lista de usuario por defecto. Los siguientes usuarios y passwords son parte de la base de datos semilla inicial. 
    UsageUserPassword
    System ManagementSystemSystem
    System Management or any role/companySuperUserSystem
    Sample Client AdministrationGardenAdminGardenAdmin
    Sample Client UserGardenUserGardenUser

     Con el Aplicativo Adempiere ya corriendo y siendo accesible por cualquiera de los usuarios por defecto arriba mencionados, se dá paso a la siguiente etapa, la personalización; pero eso, es otra historia.

     

     NOTA: Si aún le queda algunas dudas respecto a la instalación de ADempiere sobre Windows XP, puede darle una mirada aquí.

ADempiere: Instalación y Configuración del Servidor de Aplicaciones


En este artículo, instalaremos y probaremos las funcionalidades básicas del Adempiere, software ERP de tipo Open Source, versión 3.5.4.a.

Los pasos a seguir para tener un paquete Adempiere ejecutándose, en un entorno Windows XP, y esperando ser configurado, son:

INSTALACION DEL SERVIDOR ADEMPIERE

PRE-REQUISITOS

PASO 1: Descargar e instalar el SDK de JAVA.
Adempiere está programado en JAVA, por lo que, necesitamos instalar el SDK (Software Development Kit) de este lenguaje,  para poder correr el Aplicativo.
¿Dónde  lo encuentro?, aquí: http://java.sun.com/javase/downloads/index.jsp

PASO 2: Descargar e instalar el Sistema Gestor de Base de Datos.
El Adempiere soporta dos motores de base de datos,  Oracle y PostgreSQL. En nuestra prueba nos decantaremos por PostgreSQL.
¿Dónde  lo encuentro?, aquí: http://www.postgresql.org/download/windows

PASO 3: Descargar  el paquete Adempiere.
Descargar del siguiente enlace.

http://sourceforge.net/projects/adempiere/files/ADempiere%20Official%20Release/Adempiere%203.5.4-alpha/Adempiere_354a.zip/download

INSTALACIÓN DEL SERVIDOR


PASO 4: En entornos Windows XP/Vista, hay que crear y modificar ciertas variables de entorno antes de proceder a instalar el sistema Adempiere.

Para establecer variables de entorno, en ambientes Windows, se ubica, en el escritorio, el icono "Mi PC" y se le dá click derecho. Posteriormente se sigue la secuencia: pestaña "Opciones Avanzadas" -> Boton "Variables de Entorno"->Seccion "variables de Sistema". Luego se presiona el boton "Nueva" para crear variables y "Modificar" para editar otras ya existentes.
  • Se crea las variables de entorno:
    • JAVA_HOME=C:\Archivos de programa\Java\jdk1.5.0_09
    • ADEMPIERE_HOME=C:\Adempiere
    • POSTGRES_HOME=C:\Archivos de programa\PostgreSQL\9.0
  • Se modifica la variables de entorno:
    • En la variable "Path" añadir %JAVA_HOME%\bin
    • En la variable "Path" añadir %POSTGRES_HOME%\bin
PASO 5: Instalar el paquete Adempiere.
Descomprimir el archivo descargado,en la unidad C:\, quedando como C:\Adempiere, donde se localiza el archivo “RUN_setup.bat” el cual se ejecuta.  En la ventana que aparece podemos establecer y verificar los parámetros de configuración de nuestro sistema.



Las secciones a revisar son:
  • Sección JAVA:
    • Java Home: Selecciona la localización raíz del SDK de JAVA (Ejem.: C:\Archivos de programa\Java\jdk1.5.0_09). Este valor debe ser el mismo que el contenido en la variable de entorno JAVA_HOME.
    • Java VM: El nombre del vendedor de la máquina virtual (por defecto es SUN).
  • Sección ADEMPIERE:
    • Adempiere Home: Es el directorio base donde los archivos de distribución son localizados(Ejem.: C:\Adempiere). Este valor debe ser el mismo que el contenido en la variable de entorno ADEMPIERE_HOME.
    • Contraseña KeyStore : ADempiere requiere un certificado SSL. Automáticamente crea un certificado con el password ingresado.
  • Sección SERVIDOR APLICACIÓN.
    • Servidor Aplicación: Es el nombre, URL o IP de tu servidor.
    • Puerto Web: Es el puerto web que el Servidor de Aplicaciones escuchará.. Por defecto es 80.
    • SSL: Puerto del protocolo de capa de conexión segura. Por defecto es 443.
    • Puerto JNP: Puerto del Proveedor de Nombre de Java. por defecto es 1099. 
  • Sección SERVIDOR BASE DE DATOS:
    • Servidor Base de Datos: Servidor de base de datos por defecto al servidor actualmente ejecutando el Aplicativo.
    • Nombre Base de Datos: Es el nombre de la base de datos que usaremos (Ejem.: adempier2011).
    • Tipo Base de Datos: Tipo de base de datos instalado (Ejem.: Oracle 10g, Oracle 10gXE, PostgreSQL).
    • Puerto Base de Datos: Puerto para conectar a la base de datos.(Ejem.: Oracle usa 1521 como puerto standard, PostgreSQL 5432, etc.)
    • Contraseña Admin BD: 
      • Contraseña del usuario "system" en Oracle.
      • Contraseña del usuario "postgres" en PostgreSQL
    • Usuario Base de Datos: Nombre de usuario de la base de datos de la aplicación. El nombre por defecto es adempiere
    • Contraseña Base de Datos: Contraseña de la base de datos de la aplicación. El nombre por defecto es adempiere.
  • Sección SERVIDOR CORREO: Es opcional, por lo que no lo tocaremos en esta ocasión.
Una vez, fijado los parámetros de configuración del servidor, se presiona el botón "Probar" para verificar que todo esté correcto. Se acepta la ventana que aparece y, posteriormente, se presiona el botón Guardar.

Se acepta las ventanas siguientes y se espera a que aparezca, en la ventana DOS de instalación, las palabras BUILD SUCCESSFUL y Done, tal como:



     [echo] AppsDeployment= C:\Adempiere\jboss\server\adempiere\deploy
     [copy] Copying 1 file to C:\Adempiere\jboss\server\adempiere\deploy
     [copy] Copying 1 file to C:\Adempiere\jboss\server\adempiere\deploy
     [copy] Copying 1 file to C:\Adempiere\jboss\server\adempiere\deploy
     [copy] Copying 1 file to C:\Adempiere\jboss\server\adempiere\deploy

 setupTomcat:

 setupDeploy:
     [echo] AppsDeployment= C:\Adempiere\jboss\server\adempiere\deploy

 setup:
 
BUILD SUCCESSFUL
Total time: 2 minutes 22 seconds

*** 2006-12-28 14:15:35.53 Adempiere Log (CLogConsole) ***
ErrorLevel = 0
===================================
Setup Client Environment
===================================
SET ADEMPIERE_HOME=C:\Adempiere
SET JAVA_HOME=c:\Archivos de programa\Java\jdk1.5.0_05
Path is OK = c:\Archivos de programa\Java\jdk1.5.0_05\bin;C:\Archivos de programa\Java\jdk1.5.0_05\
bin;C:\oraclexe\app\oracle\product\10.2.0\server\bin;%SystemRoot%\system32;%SystemRoot%;
%SystemRoot%\System32\Wbem
Created Shortcut Adempiere.lnk
Created Shortcut Adempiere Web Site.url
Done
.
For problems, check log file in base directory



Con ésto, hemos culminado la instalación del servidor de aplicaciones de Adempiere. En un próximo artículo configuraremos la base de datos.