Herramientas Informaticas

Autor: juliocesar20200413 Página 22 de 139

Desarrollador web apasionado y gusto por la buena musica

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

COMO REGRESAR ARCHIVOS DEL CÓDIGO FUENTE A UNA VERSIÓN ANTERIOR

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.

  1. controladores/usuarios.controlador.php
  2. vistas/usuarios.php
  3. vistas/cabezote.php
  4. vistas/menu.php
  5. ajax/usuarios.ajax.php
  6. 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

Como Instalar firebird en Linux Mint

Introducción

Firebird al igual que MySQL/MariaDB es un administrador de base de datos de código abierto que nos puede servir en los programas que desarrollamos.

Las instrucciones básicas SELECT, INSERT, UPDATE son prácticamente similares, no existes diferencias significativas.

Una de las ventajas con las que cuenta Firebird son sus modos de instalación las cuales pueden ser classic, super classic, super, y embedden, esta ultima viene con una librería para hacer portable la aplicación.

Instalación en Linux Mint 19

Para instalarlo solo hace falta correr el siguiente comando

sudo apt install firebird3.0-server

Nos saldrá la siguiente pantalla

Le damos aceptar

Elegimos una contraseña para el usuario SYSDBA

En nuestro caso le pones admin

Bien ahora en la terminal usaremos la herramienta isql-fb y con ella crearemos la base de datos

sudo isql-fb

Nos arrojara la siguiente salida

Use CONNECT or CREATE DATABASE to specify a database
SQL> 

Ahora procederemos a crear una base de datos, para ello usarmos el comando CREATE DATABASE ‘RUTABASE DE DATOS’; Ejemplo;

CREATE DATABASE '/home/juliocesar/prueba.fdb';

Si nos vamos a la ruta con el explorador de archivos veremos como se ha creado el archivo

Ahora solo falta darle derechos de acceso para poder leer la base de datos en DBEAVER , para ellos abriremos Thunar como administrador le damos propiedades al archivo prueba.fdb y en permisos le damos lectura a otros para que dbeaver nos permina leerlo

Bien ahora lo que sigue es abrirlo en DBEAVER, no mostrare como instalar DBEAVER ya que es muy fácil, mostrare como acceder al archivo de la base de datos.

Primero abrimos DBEAVER y le damos en crear conexión, le ponemos en all “todos” y buscamos firebird

Buscamos el archivo de la base de datos que creamos, en este caso es prueba.fdb, le ponemos la contraseña que en nuestro caso es admin.

Podemos dar click en probar conexión para ver si todo esta correcto

Si todo salio bien ya podremos crear tablas y administrar la base de datos prueba.fdb

Ahora si queremos des-instalar corremos el siguiente comando

sudo apt --purge remove firebird3.0-server

Seguido de este comando para que limpie el residuo y la desinstalacion este completa

sudo apt autoremove

Saludos y esperemos pronto usar las bondades de este administrador de base de datos en sistema hechos en PHP

Página 22 de 139

Creado con WordPress & Tema de Anders Norén