Mostrando entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta linux. Mostrar todas las entradas

lunes, 27 de septiembre de 2021

CRS: Caja Registradora Straton

Presentación

CajaRegistradoraStraton es un proyecto que está aún en fase de desarrollo. Tenga presente que es un proyecto educativo dirigido a estudiantes y profesores en programación Java. Esta clase de aplicación puede ser considerado como "software para entrenamiento de cajeras/cajeros". A la fecha no está totalmente terminada la simulación de la caja registradora Straton. Es un proyecto abierto a los cambios a efectuarse en cualquier momento.

Licencia

Todo este proyecto, CajaRegistradoraStraton, se distribuye bajo los términos de GPL, la misma se encuentra redactada en el fichero LICENSE versión 3.
CajaRegistradoraStraton tiene copyright (C) 2021 por Eugenio Martínez.

El proyecto

Implementación de la caja registradora para un negocio de ventas de productos.
Primera versión: 28*07*2021. Para IDE Oracle JDeveloper 12c y para IDE Apache NetBeans 12.4, Windows y Linux. Se ha probado con Java JDK 16 y Java JDK 8.
El código fuente está disponible en GitHub: clic aquí y seleccionar fichero crStraton-09-2021.7z para su descarga. Este fichero corresponde a la edición Septiembre de 2021.

Punto de entrada: cajaregistradorastraton.CajaRegistradoraStraton/main() del programa CajaRegistradoraStraton.java
Los únicos usuarios autorizados son: administrador, supervisor y operador.

Ejemplo: Abrir una ventana consola en el S.O. y ejecutar la siguiente orden:
C:\base\Proyecto\JDeveloper\CajaRegistradoraStraton\Cliente>java -jar deploy\CajaRegistradoraStraton.jar 84163

Se acompaña un parámetro numérico que identifica al usuario autorizado, en este caso es el que corresponde a administrador.
En la clase CRSUsuarios, fichero CajaRegistradoraStraton.java, se encuentran los ids y los nombres de los usuarios autorizados.
En la clase ClaveAcceso, fichero ClaveAcceso.java, se encuentran los ids y las contraseñas de los usuarios autorizados.

Carga de datos

Los datos son cargados en un JTable que se llama tblPlanilla, la misma se encuentra en CajaPantalla.java. Dichos datos provienen de un fichero de textos llamado datos\planillaCaja.txt. De esta manera se está simulando la lectura del código de barra que identifica al producto a vender. Además se simula los accesos a una base de datos real que podría ser Bitnami WAPP Stack. Dos elementos faltantes y que son muy importantes en una situación real: el lector de código de barras y el sistema gestor de base de datos SQL. Otro elemento faltante e importante es el lector de tarjeta de crédito o posnet que también puede ser simulado mediante software. 

Su apariencia gráfica

Presenta el siguiente diseño en pantalla:


 

Se agregaron a la ventana de Caja los siguientes componentes gráficos:

  • Botón [<< Nueva >>]    Permite efectuar una nueva operación de facturación.
  • Botón [<< Emitir >>]    Permite emitir en papel la factura a través de una impresora (función no implementada).
  • Botón [<< Cobrar >>]    Permite cobrar al cliente, hace los cálculos necesarios para mostrar el importe total, importe a abonar y el importe del vuelto.
  • Botón [<< Gestión >>]   Permite agregar y retirar dinero efectivo en caja; mostrar el monto de dinero efectivo que tiene la caja. El único usuario autorizado para efectuar las operaciones anteriormente mencionadas es administrador.
  • Botón con lista desplegable de opciones de pago.
  • Botón con lista desplegable de opciones a emisión de factura.
  • Botón con lista desplegable de acciones: cambiar de usuario, cerrar sesión y reiniciar caja.
¿Qué faltaría por agregar a éste módulo?
  • Eliminar uno o más productos de la planilla de venta de productos porque el cliente desiste en comprarlo, antes de efectivizarse la venta.
  • Cobrar una parte del importe total en un medio de pago diferente al contado efectivo.
    Por ejemplo 50 % de contado y 50 % con tarjeta de crédito. Unico método de pago frente a un método de pago combinado.
  • Uso de las teclas programables F1~F12 para efectuar rutinas específicas, por ejemplo con F1 se solicitaría una ayuda en pantalla.
  • Registrar el movimiento de caja por operación de depósito/extracción efectuado por la persona responsable.

Las variables de entorno
 

Se necesita que esté definida para que funcione el módulo Caja la variable de entorno TEMP o TMP. Esta la debe definir el proceso padre por ejemplo el programa llamador.
En Linux, es aconsejable definir su contenido como:

TEMP=/tmp
Esto es para cualquier usuario en Linux.
Y en Windows, si el usuario es Administrador:
TEMP=C:\Users\ADMINI~1\AppData\Local\Temp
Puede ser con otro contenido para otro usuario, por ejemplo, el usuario cajero:
TEMP=C:\Users\Cajero\AppData\Local\Temp

El módulo Caja es una aplicación que debe ser ejecutada como única instancia en memoria RAM, es por este motivo que se crea un fichero de control llamado candado.lck en el directorio indicado por la variable TEMP. Esto es como medida de seguridad. Piense que hay valores en resguardo.


Referencias


¿Qué es un POS?
Software integrado para farmacias
uniCenta oPOS
JDeveloper IDE, guía del usuario

________[Octulio Biletán]________

miércoles, 22 de julio de 2020

domingo, 1 de marzo de 2020

Desordenar un vector numérico - codigo fuente -

Código fuente en lenguaje Vala del algoritmo desordenar un vector numérico mediante la técnica "Mezcla de naipes Fisher-Yates".
Compilar y ejecutar en Linux, por ejemplo, en CentOS 7.
Pasos:
  1. valac -v --Xcc=-lm VectorNum.vala
  2. ./VectorNum
En el 1º paso, compila el programa VectorNum.vala produciendo el programa ejecutable.
Compilación del programa VectorNum.vala

En el 2º paso, se invoca al programa ejecutable VectorNum mostrando en pantalla el vector ordenado y luego el vector desordenado.
Desordenar datos numéricos en un vector.


 VectorNum.vala
Copie y pegue en un editor de texto el siguiente código fuente y guarde todo en un archivo: VectorNum.vala

// Programa   : VectorNum.vala
// Autor          : Octulio Biletán - Febrero de 2020.
// Propósito    : Desordenar/mezclar los datos de un vector numérico
//                      mediante el uso del algoritmo "Mezcla de naipes Fisher-Yates".
// Compilar   : valac -v --Xcc=-lm VectorNum.vala
// Referencias: https://bost.ocks.org/mike/shuffle/
//

public class VectorNum
{
    // Desordena el vector numérico comenzando desde atrás hacia adelante
    void barajar(int[] vnum)
    {
      int m = vnum.length;    // último elemento del vector
      int t;            // var. temporaria
      int i;            // posición del elemento elegido al azar

      // Mientras queden elementos a barajar...
      while(m > 0)
      {
    // Elige un elemento al azar...
    i = (int)Math.floor(Random.next_double() * m--);
   
    // Y lo intercambia con el elemento actual.
    t       = vnum[m];
    vnum[m] = vnum[i];
    vnum[i] = t;
      }
    }
   
    // Muestra el vector numérico en pantalla
    void mostrar(int[] vnum)
    {
    for(int i = 0; i < vnum.length; i++)
    {
        stdout.printf("%d, ", vnum[i]);
    }
    }
   
    static int main(string[] args)
    {
    // Vector entrada: sus datos están ordenados.
    int ventrada[] = {-1,0,1,2,3,4,5,6,7,8,9,10};
   
    VectorNum vector = new VectorNum();

    stdout.printf("Vector ordenado:\n");
    vector.mostrar(ventrada);
    stdout.printf("\n");
       
    // 1º llamado
    vector.barajar(ventrada);
   
    // 2º llamado
    vector.barajar(ventrada);
   
    stdout.printf("\nVector desordenado: con dos mezclas\n");
    vector.mostrar(ventrada);
    stdout.printf("\n");
   
    return 0;
    }
}

Más info. sobre Vala puede encontrar en Wikipedia:
es.wikipedia.org/wiki/Vala_(lenguaje_de_programación)

viernes, 13 de diciembre de 2019

MX Linux

Sitio https://mxlinux.org/

Conoce a Patito Feo: MX Linux 19 (Diciembre de 2019).
Lee aquí el artículo dedicado a ésta distribución Linux.

miércoles, 7 de marzo de 2018

Servicio Google Cloud Shell

Para ingresar a 'Cloud Shell' haz clic aquí.
Ver en la siguiente ilustración.
Ilustración: entrar a la consola en la nube Google.

Ten presente que para usar este servicio en Google tienes que tener al menos una cuenta de correo electrónico. Una vez que hayas ingresado mediante tu cuenta de correo electrónico se te aparecerá la siguiente página con esta apariencia:

Después de seleccionar la opción Activar Google Cloud Shell se te aparecerá la siguiente página con esta apariencia:

Listo. Ahora eres un usuario operador en la nube de Linux. A disfrutarlo !!!
Para conocer los comandos de CloudShell escribe el comando help y presiona la tecla <Intro> o <Enter>. Recuerda que cualquier comando que escribas en CloudShell siempre termina pulsando la tecla <Intro> o <Enter> según tu modelo de teclado que tenga tu computadora.
Comandos básicos para comenzar a practicar:
  • ls
  • man <nombre del comando>
  • mc
  • clear
  • builtin help
  • id
  • w
  • ps
  • ps aux
  • df
  • free
  • uname -a
  • lscpu
  • lslogins
  • dpkg --list
Por ejemplo, para saber qué es el comando id escribe man id y así con los demás que quieras aprender.
Y para terminar la sesión debes escribir el comando logout.