Herramientas Informaticas

Mes: diciembre 2021 Página 2 de 3

Añadiendo controles al formulario

En el diseño ya tenemos el menú, ahora nos toca insertar los controles que vamos a necesitar.

Se usaran los mas básicos que son el textbox, dir chooser y button

En la esquina inferior derecha están todos los controles clasificados en pestañas, para agregarlo solo seleccionamos y lo arrastramos hacia la ventana, en este caso escogeremos el control dir chooser
Quedaría de esta forma, en el atributo name le ponemos ruta
Ahora arrastramos el control label
Quedaría de esta forma, en el nombre del control le ponemos lblNombreTabla, en text le ponemos Nombre Tabla:
Ahora elegimos el control textbox, lo seleccionamos y lo arrastramos a la ventana
Quedaría de esta forma en el atributo name le ponemos txtTabla y en el atributo public le ponemos true ya que usaremos este control fuera de este archivo en otro modulo
Ahora seleccionamos el control button y lo arrastramos a la ventana
El botón quedaría de la siguiente forma, en el atributo Name le ponemos btnGeneral y en el atributo Text le ponemos Crear Catálogo
Si corremos el programa así se vera
Video demostrativo

En la próxima publicación crearemos la ventana de configuración donde meteremos los parámetros para acceder a la base de datos de MySQL y mostraremos como lanzarlo desde el

Añadiendo menú a la ventana principal del programa

Lo primero que necesita cualquier programa es un menú para tener acceso a las diferentes funciones del sistema.

Para crear los menús y sub menú es muy sencillo

Existes tres formas una es vía teclado con CTRL+E, también existe un botón en la parte de arriba llamado editor de menú y la tercer forma es simplemente dar click derecho en la ventana y dar click en editar menú

Creando un proyecto al estilo winforms en GAMBAS3

Bien ya tenemos instalado GAMBAS3 ahora vamos a crear un proyecto para hacer una aplicación sencilla al estilo winforms de visual studio, es decir, un simple programa en donde vamos a ir agregando botones y controles simplemente arrastrándolos, así de fácil.

Los pasos son los siguientes

Programando en Gambas3 Introducción – Instalación

En toda la comunidad libre de GNU/Linux nos encontramos herramientas que nos permiten hacer nuestro trabajado cómodamente ya sea office, edición de vídeo, edición de fotografía y en nuestro caso en el desarrollo de aplicaciones.

Mucho hemos hablado sobre el desarrollo en PHP, pero que hay del desarrollo rápido de aplicaciones RAD, que nos sirve para crear herramientas rápidas sin gastar mucho tiempo.

En el caso de Windows tenemos Visual Basic, poderosa herramienta que nos permite crear aplicaciones sencillas en un corto periodo de tiempo.

GNU/Linux no se queda atrás y tenemos Gambas3, cuyas bondades al igual que Visual Basic nos permite entre otras cosas lo siguiente:

EL MEJOR REPRODUCTOR Y ORGANIZADOR DE MUSICA EN ANDROID

Ya ha pasado mucho tiempo de cuando nosotros mismos organizamos en el almacenamiento nuestras canciones preferidas.

Los tiempos antes del Spotify

Aunque Spotify ha traído beneficios tanto a los creadores de música como a los usuarios que la disfrutan aun así me pregunte que pasaría si volvemos una vez mas a la vieja escuela.

Ese pensamiento recorrió mi cabeza cuando Spotify se callo por un día hace unos meses.

Pero en eso revise mi móvil y me percate que ya vienen sin un reproductor de música preinstalado, en mi caso solo estaba con la aplicación de Youtube Music, aplicación muy buena pero no hay la música local que acostumbro escuchar

Después de trastear entre varias aplicaciones en Android la que mas me ha gustado es Reproductor Eon

MANUAL PARA CREADOR DE CATÁLOGOS PARA EL SISTEMA DE PUNTO DE VENTA JCPOS 2021

Anteriormente para crear un simple catalogo en el sistema de punto de venta hecho en PHP JCPOS2021 tardábamos algo de tiempo ya que teníamos que crear el modelo la vista y el controlador totalmente a mano.

Todo eso quedo atrás ya que hemos creado una herramienta que hará todo ese código en automático, solo necesitamos crear la tabla, siempre tenemos que poner la primer columna con el nombre de “id” que sea primera e autoincrementable.

Ya después de allí creamos las demás columnas como varchar, ya despues si es datatime o otro tipo de dato lo podemos cambiar después.

Este programa fue desarrollado en el lenguaje Gambas3, luego les dejo un tutorial con el fuente de como se hizo, es necesario tener Linux para hacer funcionar este programa y tener instalado Gambas3.

Si ya tienen Linux y el Gambas3 instalado pueden descargar el creador de catálogos.

Ahora el manual de uso, simularemos que crearemos el catalogo de proveedores, entonces lo primero que se tiene que hacer es crear la tabla proveedores, con el primer campo llamado id que debe ser primaria y autoincrementable, les dejo el codigo de ejemplo de como creamos la tabla en phpmyadmin

CREATE TABLE `pos`.`proveedores` ( `id` INT NOT NULL AUTO_INCREMENT ,  `nombre` VARCHAR(256) NULL ,  `apellido` VARCHAR(256) NULL ,  `direccion` VARCHAR(256) NULL ,    PRIMARY KEY  (`id`)) ENGINE = InnoDB;

Ahora ejecutamos el programa, en mi caso no sale el icono pero es problema de mi sistema operativo.

En mi caso no se ve el icono pero no es problema, el programa funciona igual
Al abrirse el programa se mostrara como se muestra en la imagen
Nos vamos al menú Archivo ->Configuración y nos saldrá esta ventana en donde escribimos los datos de conexión a la base de datos
No posicionamos en donde esta el fuente, escribimos el nombre de la tabla en el campo Nombre Tabla: y le damos al botón Generar Catalogo
Vemos como ya se crearon los archivos
Ahora solo agregamos manualmente la ruta de proveedores en el archivo plantilla.php
Ahora agregamos el en menú para poder usarlo
Y listo ya tenemos nuestro catalogo listo para hacerle altas bajas y cambios

CAMBIOS TÉCNICOS JCPOS 2021 TABLA CLASES

El objetivo de este cambio es para usar una herramienta que nos permitirá crear catálogos de una forma mas rápida de forma automática.

Normalmente hacer un simple catalogo nos puede llevar alrededor de una hora como mínimo

Con esta futura herramienta nos podría llevar solo 10 minutos y solo para arreglar los detalles estéticos

Cambios en la base de datos

Cambio en la tabla clases

ALTER TABLE `clases` CHANGE `id` `id` INT(11) NOT NULL AUTO_INCREMENT, add PRIMARY KEY (`id`);


INSERT INTO `clases` (`id`, `clase`) VALUES
(1, 'controladores/plantilla.controlador.php'),
(2, 'controladores/usuarios.controlador.php'),
(3, 'controladores/categorias.controlador.php'),
(4, 'controladores/productos.controlador.php'),
(5, 'controladores/clientes.controlador.php'),
(6, 'controladores/ventas.controlador.php'),
(7, 'controladores/utilerias.controlador.php'),
(8, 'controladores/empresa.controlador.php'),
(9, 'controladores/perfiles.controlador.php'),
(10, 'controladores/CorreoSaliente.controlador.php'),
(11, 'controladores/pagos.controlador.php'),
(12, 'controladores/caja.controlador.php'),
(13, 'modelos/usuarios.modelo.php'),
(14, 'modelos/categorias.modelo.php'),
(15, 'modelos/productos.modelo.php'),
(16, 'modelos/clientes.modelo.php'),
(17, 'modelos/ventas.modelo.php'),
(18, 'modelos/empresa.modelo.php'),
(19, 'modelos/correo.modelo.php'),
(20, 'modelos/perfiles.modelo.php'),
(21, 'modelos/pagos.modelo.php'),
(22, 'modelos/bitacora.modelo.php'),
(23, 'modelos/caja.modelo.php'),
(24, 'extensiones/vendor/autoload.php');

Cambios en el archivo index.php para leer las clases desde la tabla en lugar de tenerlas escritas directamente

Se remplazo el siguiente codigo:



require_once "controladores/plantilla.controlador.php";
require_once "controladores/usuarios.controlador.php";
require_once "controladores/categorias.controlador.php";
require_once "controladores/productos.controlador.php";
require_once "controladores/clientes.controlador.php";
require_once "controladores/ventas.controlador.php";
require_once "controladores/utilerias.controlador.php";
require_once "controladores/empresa.controlador.php";
require_once "controladores/perfiles.controlador.php";
require_once "controladores/CorreoSaliente.controlador.php";
require_once "controladores/pagos.controlador.php";
require_once "controladores/bitacora.controlador.php";
require_once "controladores/caja.controlador.php";


require_once "modelos/usuarios.modelo.php";
require_once "modelos/categorias.modelo.php";
require_once "modelos/productos.modelo.php";
require_once "modelos/clientes.modelo.php";
require_once "modelos/ventas.modelo.php";
require_once "modelos/empresa.modelo.php";
require_once "modelos/correo.modelo.php";
require_once "modelos/perfiles.modelo.php";
require_once "modelos/pagos.modelo.php";
require_once "modelos/bitacora.modelo.php";
require_once "modelos/caja.modelo.php";
require_once "extensiones/vendor/autoload.php";

Por este código:

foreach ($clases as $key => $value) {

  if (!file_exists($value["clase"])){

      $mensaje = "EL ARCHIVO ".strtoupper($value["clase"])." NO EXISTE";

        echo '<!DOCTYPE html> <html lang=&quot;es&quot;>
              <head>
              <meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; />
              <meta name=&quot;description&quot; content=&quot;&quot; />
              <style>             ::-moz-selection {background: #b3d4fc; text-shadow: none;}             ::selection {background: #b3d4fc; text-shadow: none;}
              html {padding: 30px 10px; font-size: 16px; line-height: 1.4; color: #737373; background: #f0f0f0;
              -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%;}             html,
              input {font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;}             body
              {max-width:700px; _width: 700px; padding: 30px 20px 50px; border: 1px solid #b3b3b3;
              border-radius: 4px;margin: 0 auto; box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff;                 background: #fcfcfc;}
              h1 {margin: 0 10px; font-size: 50px; text-align: center;}             h1 span {color: #bbb;}
              h2 {color: #D35780;margin: 0 10px;font-size: 40px;text-align: center;}             h2 span {color: #bbb;font-size: 80px;}
              h3 {margin: 1.5em 0 0.5em;}             p {margin: 1em 0;}             ul {padding: 0 0 0 40px;margin: 1em 0;}             .container
              {max-width: 380px;_width: 480px;margin: 0 auto;}             input::-moz-focus-inner {padding: 0;border: 0;}         </style>     </head>
              <body>         <div class=&quot;container&quot;>             <h2><span>500</span> Error interno del servidor</h2>
              <p>¡Vaya! Algo salió mal.<br /><br />'.$mensaje.'.</p>
              </div>
              </body>
              </html>';
      return;
  }

     require_once $value["clase"];

}

Y eso seria todo, es importante actualizar por que en un futuro cercano nos servira

QUE HACER DESPUES DE INSTALAR WINDOWS 10

Windows es uno de los sistemas operativos mas utilizados por lo menos en mi región para el uso del hogar, escuela y trabajo, así que vamos a dedicarla unas publicaciones, así como también probar el uso de nuestro aplicaciones.

Cada quien tiene necesidades diferentes en su equipo de computo pero vamos a dejar las aplicaciones que posiblemente todos podrían necesitar

Primero que nada esta el office ya sabemos que existe un Microsoft office que es de paga y que normalmente el formateador profesional de la colonia del estero les pone un office pirata, lo cual yo no recomiendo hacerlo, es mejor tener el original ya que es es improbable que suceda pero puede pasar de que dé repente puedan perder todos sus archivos por algún virus encriptador.

Así que si le quieren instalar alguna paquetería de office recomiendo OnlyOffice

CAMBIOS ESTÉTICOS PUNTO DE VENTA MODAL ARRASTRABLE JCPOS2021

Se realizaron diferentes cambios al punto de venta los cuales son los siguientes

Se agrego para que las ventanas modales se puedan mover para ello se agrego el siguiente código

En vistas/plantilla.php se agrego el siguiente código en el <head>

 <script src="https://code.jquery.com/ui/1.11.3/jquery-ui.min.js"></script>

En vistas/js/plantilla.js

   $('.modal-dialog').draggable({
      handle: ".modal-header"
    });

Ya con eso se puede mover cualquier modal del fuente

En la imagen vemos como se movió el modal de registrar cliente hacia la derecha

Se agrego para poderle hacer zoom a las imagenes de los productos

Se agrego el código para importar el css en vistas/plantilla.php

  <!-- ZOOM Image -->
  <link rel="stylesheet" href="vistas/dist/css/zoom.css">

Se agrego también al final del archivo plantilla el código para llamar al archivo zoom.js

<script src="vistas/js/zoom.js"></script>

El archivo vistas/dist/css/zoom.css tiene el siguiente contenido

img[data-action="zoom"] {
  cursor: pointer;
  cursor: -webkit-zoom-in;
  cursor: -moz-zoom-in;
}
.zoom-img,
.zoom-img-wrap {
  position: relative;
  z-index: 666;
  -webkit-transition: all 300ms;
       -o-transition: all 300ms;
          transition: all 300ms;
}
img.zoom-img {
  cursor: pointer;
  cursor: -webkit-zoom-out;
  cursor: -moz-zoom-out;
}
.zoom-overlay {
  z-index: 420;
  background: #fff;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  filter: "alpha(opacity=0)";
  opacity: 0;
  -webkit-transition:      opacity 300ms;
       -o-transition:      opacity 300ms;
          transition:      opacity 300ms;
}
.zoom-overlay-open .zoom-overlay {
  filter: "alpha(opacity=100)";
  opacity: 1;
}
.zoom-overlay-open,
.zoom-overlay-transitioning {
  cursor: default;
}

El archivo vistas/js/zoom.js tiene el siguiente contenido

En ajax/datatable-productos.ajax.php se cambio el siguiente código en las imagenes, se agrego data-action=’zoom’

  $imagen = "<img src='" . $productos[$i]["imagen"] . "' data-action='zoom'  width='40px'>";

También se agrego en vistas/modulos/usuarios.php

      echo '<td><img src="'.$value["foto"].'" class="img-thumbnail" data-action="zoom" width="40px"></td>';

Al hacer click en la foto en el datatable se hara zoom

Vemos como se hizo zoom a la imagen de usuario

También en productos

Vemos como al darle click se hace mas grande la imagen

CAMBIOS PUNTO DE VENTA JCPOS 2021 ARQUEO DE CAJA

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 configuración ->Datos empresa definimos si se validara el arqueo de 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

De lado izquierdo vemos como abrimos la caja con el usuario asd y en el centro vemos como podemos escoger con un combo el usuario/vendedor

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

normalmente debe de estar como false

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`;

Página 2 de 3

Creado con WordPress & Tema de Anders Norén