JCPOS es un sistema de punto de venta (POS) de código abierto desarrollado en PHP. Recientemente, JCPOS se ha migrado a CodeIgniter 4, lo que ha mejorado significativamente su rendimiento y escalabilidad. En este artículo, exploraremos los detalles de la migración de JCPOS a CodeIgniter 4 y sus beneficios.
Antes de profundizar en la migración de JCPOS a CodeIgniter 4, es importante comprender qué es CodeIgniter y por qué es una opción popular para desarrolladores de PHP.
CodeIgniter es un framework PHP de código abierto que se utiliza para desarrollar aplicaciones web dinámicas y sitios web. Es popular debido a su facilidad de uso, velocidad y seguridad. Además, CodeIgniter tiene una gran comunidad de desarrolladores que proporciona soporte y actualizaciones regulares.
La migración de JCPOS a CodeIgniter 4 implica actualizar el código de JCPOS para que sea compatible con la última versión del framework. CodeIgniter 4 presenta varias mejoras y cambios significativos en comparación con su versión anterior, CodeIgniter 3. Algunas de estas mejoras incluyen:
Mayor rendimiento y velocidad gracias a la utilización de características avanzadas de PHP 7
Soporte mejorado para la creación de APIs RESTful
Mejoras en la seguridad y en la gestión de sesiones
Uso de clases y métodos modernos para mejorar la legibilidad y mantenibilidad del código
Flexibilidad y escalabilidad mejoradas gracias a su arquitectura modular
Para migrar JCPOS a CodeIgniter 4, los desarrolladores tuvieron que actualizar el código de JCPOS para utilizar las nuevas características y métodos de CodeIgniter 4. Esto incluyó cambios en la estructura del directorio, en la configuración del archivo y en el uso de nuevos métodos y características de CodeIgniter 4.
Una vez completada la migración, JCPOS obtuvo varios beneficios significativos. En primer lugar, el rendimiento y la velocidad de JCPOS se mejoraron considerablemente gracias a la utilización de características avanzadas de PHP 7 y a la optimización de la arquitectura de CodeIgniter 4. Esto significa que el sistema puede manejar más transacciones y usuarios simultáneamente, lo que es especialmente importante en entornos de punto de venta de alta demanda.
Además, la migración a CodeIgniter 4 proporcionó una mayor flexibilidad y escalabilidad a JCPOS. La arquitectura modular de CodeIgniter 4 permite que los desarrolladores de JCPOS agreguen fácilmente nuevas funcionalidades y características al sistema sin afectar negativamente al rendimiento o la estabilidad. Esto significa que JCPOS puede adaptarse y crecer para satisfacer las necesidades cambiantes de sus usuarios.
En conclusión, la migración de JCPOS a CodeIgniter 4 ha mejorado significativamente el rendimiento, la escalabilidad y la flexibilidad del sistema. Los desarrolladores de JCPOS han aprovechado las características avanzadas y la arquitectura modular de CodeIgniter 4 para optimizar el sistema y garantizar su compatibilidad con las últimas tecnologías y tendencias en el desarrollo web.
JCPOS: Una solución de punto de venta en constante evolución
En una reciente transmisión en vivo, el equipo de desarrollo detrás de JCPOS discutió los últimos cambios y mejoras en su solución de punto de venta. JCPOS es un sistema de punto de venta que ha estado en desarrollo desde el 2020, y ha evolucionado constantemente desde entonces para satisfacer las necesidades de sus usuarios.
Uno de los cambios más notables que el equipo ha realizado es el cambio de nombre de JC post a JCPOS. Esto se hizo para mantener la coherencia en el nombre a lo largo de los años, y evitar confusiones al cambiar el nombre cada año.
Otro de los cambios que se discutió en la transmisión fue la reciente publicación del repositorio de JCPOS en Github. Ahora está disponible para que cualquier persona interesada lo pueda descargar y explorar el código fuente. Además, se hizo hincapié en que los usuarios pueden contribuir al proyecto si encuentran algún problema o tienen alguna sugerencia.
El equipo también habló de algunos cambios específicos que han realizado en JCPOS, como la corrección de un problema en la bitácora que no estaba ordenando los botones de manera correcta. También se discutió la implementación de descuentos en las ventas, para asegurarse de que funcionen correctamente. Además, se está trabajando en la corrección de detalles menores, como la ordenación de la lista de ventas.
El equipo de JCPOS también habló sobre su intención de usar Composer para gestionar las dependencias del proyecto, lo que les permitirá mantenerse actualizados con las últimas versiones de las librerías que utilizan. También se mencionó la adición de impuestos a los productos, lo que permitirá la implementación de facturación electrónica en el futuro.
Finalmente, el equipo mencionó a sus patrocinadores y clientes, agradeciendo su apoyo y mencionando que los nombres de los patrocinadores se agregarán al repositorio en el futuro. También se proporcionó información sobre cómo patrocinar el proyecto.
En resumen, JCPOS es un proyecto de punto de venta en constante evolución. El equipo detrás de JCPOS está trabajando constantemente para mejorar la solución, escuchar las necesidades de los usuarios y mantenerse actualizado con las últimas tecnologías y herramientas de desarrollo. Si estás interesado en probar JCPOS o contribuir al proyecto, ¡asegúrate de visitar su repositorio en Github!
Bien ahora para seguir avanzando haremos las altas bajas y cambios del catalogo de empresas ya que actualmente solo tenemos para meter datos de una empresa.
Aprovechando meteremos varios campos extras como el logo, contraseña (Por si se tiene que ingresar por empresa), archivo .cer y .key y contraseña del certificado, por si en un futuro se mete la facturación electronica.
Uno de los cambios que no han estado solicitando es que no todos los usuario puedan ver el stock, si no que si no tiene derecho que solo vea el color por si esta bajo en existencia así que empezando
Primero que nada empezamos agregando el cambio del derecho en la base de datos para ello ejecutamos el siguiente comando en la base de datos
alter table perfiles add permiteVerStockVentas varchar(5) null
Cuando iniciamos un pequeño negocio en donde ya tenemos de mas vendedores es importante tener información al momento de las ventas realizadas, de pendiente de cobrar y de por lo menos un inventario básico para saber que necesitamos comprar además de saber cuales son los productos que mas se venden por mes año o día.
También es necesario tener un control de acceso para que los empleados no puedan entrar a visualizar información sensible o esta no pueda ser modificada por ellos si no tienen autorización.
Es necesario también poder ver reportes de las ventas e inventarios en tiempo real desde cualquier ubicación desde la comodidad del dispositivo móvil, sin importar el sistema operativo del dispositivo.
Todo eso se pensó al ir desarrollando el sistema de punto de venta en JCPOS2021
Este sistema puede funcionar desde cualquier servidor que soporte las tecnologías de PHP8, Apache y MariaDB que es el estándar en el mundo de internet.
Les dejo un demo de este sistema y también el código fuente antes de empezar con el manual
Bien al entrar al demo lo primero que vemos es la pantalla de acceso en la cual para el demo el usuario es admin y la contraseña es admin
Al entrar lo primero que vemos es la pantalla del dashboard, el menú lateral y menú superior,
ELEMENTOS DEL DASHBOARD
Si el usuario tiene derechos a los elementos del dashboard los mostrara y son los siguientes
MENU CONFIGURACIONES
En este menú nos muestra todos los submenús que nos servirá para dictar las reglas de funcionamiento del sistema y cuenta con los siguientes submenús 1. Datos Empresa 2. Usuarios 3. Perfiles 4. Configurar Correo 5. Bitacora
SUB MENU DATOS EMPRESA
Aquí alimentaremos el sistema por única vez con los datos de la empresa como nombre dirección ETC, estos datos son los que saldrán en los encabezados de los reportes.
SUB MENU USUARIOS
En este catalogo damos las altas, bajas y cambios a los usuarios
SUB MENÚ PERFILES
En este catalogo creamos los diferentes perfiles en los cuales le asignamos los derechos de acceso a las diferentes del sistema
SUB MENU CONFIGURAR CORREO
MENU CATALOGO DE CLIENTES
En este catalogo nos servirá para dar de alta todos los clientes, como recomendación deje el primer cliente como publico en general
SUB MENU BITACORA
MENU CATALOGO DE CATEGORIAS
MENU CATALOGO PRODUCTOS
Aquí es donde capturamos los productos que se van a vender, también se le asigna la existencia ese valor va disminuyendo conforme se van haciendo ventas
MENU COTIZACIONES
Este menú consta de dos sub menús 1. Nueva Cotización 2. Ver Cotizaciones
SUB MENU NUEVA COTIZACIÓN
Nos permite realizar cotizaciones para enviársela al cliente y si el cliente confirma convertimos la cotización en venta
SUB MENU VER COTIZACIONES
Es para ver las cotizaciones realizadas y ver si las eliminamos, copiamos o realizamos la venta
MENU VENTAS
En el menú ventas contamos con los siguientes sub menús 1. Administrar Ventas 2. Crear Venta 3. Reporte de ventas por producto 4. Reporte de ventas
SUB MENU REPORTE DE VENTAS POR PRODUCTO
Este reporte nos da una lista de las ventas detallado por producto
SUB MENU REPORTE DE VENTAS
Además de los reportes de grafico de ventas y productos mas vendidos aquí contamos con una grafica de barras con las ventas por vendedor, una grafica de ventas por comprador “Cliente”, aquí podemos filtrar por fecha además viene una opción para exportar en Excel la información.
Saludos no olviden compartir esta pagina si les es útil y también comentar en la caja de comentarios cualquier duda que tengan
Se han hecho algunos cambios significativos al arqueo de caja y son los siguientes
Se agrego una opción en datos empresa para especificar si se va usar el arqueo se caja, en caso de que no este activado se podrá realizar una venta aunque no este abierta una caja
En arqueo de caja se agrego para poder escoger con que usuario/vendedor se abrirá la caja, antes solo se podía abrir con el usuario con el que se inicio sesión
En el fuente archivo configuración.php se agrego una constante llamada debug, lo ideal si tenemos el programa en XAMPP es que esa variable este como false, pero si queremos debugear directamente con PHP sin utilizar el archivo .htaccess debemos ponerlo en true
Se agrego el campo caja en datosempresa lo puede agregar con el siguiente código SQL
ALTER TABLE `datosempresa` ADD `caja` VARCHAR(5) NULL AFTER `diasEntrega`;
En algunas ocasiones hacemos cambios nuevos en el fuente y el resultado no es satisfactorio, como es el caso de agregarle la función de guardar las imágenes directamente en la base de datos, en nuestro caso el resultado fue que funciono mas lento, ya que no queda de otra que volver a la versión anterior.
Esto no sera problema en nuestro caso ya que manejamos la tecnología GIT, y en nuestro caso con Netbeans sera mucho mas fácil volver a la versión anterior.
Primero listamos los archivos que modificamos que serian los siguientes.
controladores/usuarios.controlador.php
vistas/usuarios.php
vistas/cabezote.php
vistas/menu.php
ajax/usuarios.ajax.php
modelos/usuarios.modelo.php
Buscamos el commit donde no tenia los cambios que no deseamos y le damos click y luego revert y así con todos los archivos que hicimos cambios.
Por ultimo eliminamos el campo archivoFoto de la tabla usuarios con este comando
ALTER TABLE `usuarios` DROP `archivoFoto`;
Y bien seria todo el cambio por hoy les dejo el fuente para que lo puedan descargar y el demo, saludos y espero que les sea de utilidad
Usamos cookies en nuestro sitio web para brindarle la experiencia más relevante recordando sus preferencias y visitas repetidas. Al hacer clic en "Aceptar", acepta el uso de TODAS las cookies.
This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.