Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Main.java */
- package elcarritomagico;
- /*
- * Class: Main
- * Extends: Ninguno
- * Implements: Ninguno
- * Ayuda: Programa principal, arranque del sistema
- */
- public class Main {
- public static void main(String[] args) {
- Menu _menu = new Menu();
- }
- }
- /* Menu.java */
- package elcarritomagico;
- import java.util.Calendar;
- import java.util.GregorianCalendar;
- /*
- * Class: Menu
- * Extends: Helpers
- * Implements: Ninguno
- * Ayuda: Menú general para el inicio del sistema
- */
- public final class Menu extends Helpers{
- /*
- * Clase: Database
- * Objeto: _database
- */
- Database _database = new Database();
- /*
- * Clase: GregorianCalendar
- * Objeto: _date
- * Adicional: Relacionados a la fecha y hora
- */
- Calendar _date = new GregorianCalendar();
- String day, month, year, fullDate, fullHour;
- int hour, minute, seconds;
- //Variable para el nombre del supermercado
- String _name = "";
- //Variable para el nombre de la persona que atiende
- String _vendorName = "";
- //Variable del RFC
- String _rfc = "";
- //Variable para la dirección
- String _address = "";
- //Variable para el teléfono
- String _phone = "";
- //Arreglo para la información del Software
- String[] _softwareData = new String[3];
- //Variable para el reinicio del sistema
- boolean restart = false;
- //Variable para la cantidad de objetos comprados
- int totalItems = 0;
- //Variable para la salida de ventas
- String finishSell = "";
- //Variable para buscar el código del objeto a comprar
- String itemToSearch = "";
- //Variable para la selección de la categoría
- int category = 0;
- //Variable para conocer si fue o no encontrado el objeto
- String _finded = "";
- //Variable para los objetos comprados
- String buyedItems = "";
- //Variable para el análisis de los objetos comprados
- String _items = "";
- //Variable especial para el folio
- int _folio = 00001;
- //Arreglo de información para ventas. Y variables de uso
- String sellsInfo[][] = new String[100][5];
- int _count = 0;
- /*
- * Método: __construct();
- * Parámetros:
- * @Param: Ninguno
- * @Return: Ninguno
- * Ayuda: Constructor principal para configuraciones y valores iniciales
- */
- public void __construct()
- {
- _name = "El Carrito Mágico";
- _rfc = "LOOM 640924 IL1";
- _address = "Bartolome de las casas #97 Colonia Centro\n Morelia Michoacán México";
- _phone = "(443) 312 07 20";
- _vendorName = _getStringData("Introduzca el nombre del vendedor:");
- _softwareData[0] = "0.0.3";
- _softwareData[1] = "Equipo 7a";
- _softwareData[2] = "05/Diciembre/2011";
- //-------------------//
- day = Integer.toString(_date.get(Calendar.DATE));
- month = Integer.toString(_date.get(Calendar.MONTH) + 1);
- year = Integer.toString(_date.get(Calendar.YEAR));
- fullDate = day+"/"+month+"/"+year;
- hour = _date.get(Calendar.HOUR_OF_DAY);
- minute = _date.get(Calendar.MINUTE);
- seconds = _date.get(Calendar.SECOND);
- fullHour = hour+":"+minute+":"+seconds;
- }
- /*
- * Método: Menu();
- * Parámetros:
- * @Param: Ninguno
- * @Return: Ninguno
- * Ayuda: Constructor secundario, menú general que inicia el trabajo del sistema
- */
- Menu()
- {
- __construct();
- //Opción del menú escogida por el usuario
- int _menuOption = 0;
- //Se estará realizando todo dentro de un proceso hasta que "_menuOption" sea
- //diferente de 10.
- do
- {
- //Obtenemos desde un menú la selección
- _menuOption = _getIntFromStringData("Control de Supermercado: " + _name
- + "\n1) Realizar una nueva venta"
- + "\n2) Imprimir última venta"
- + "\n3) "
- + "\n4) "
- + "\n5) Imprimir información del día"
- + "\n8) Reiniciar el Sistema"
- + "\n9) Información del Software"
- + "\n10) Salir");
- //Si no fue el valor esperado (entero) se demuestra un error
- if(_menuOption == 400 || empty(_menuOption) || _menuOption > 10)
- _print("Por favor, selecciona una opción válida.");
- else
- {
- //Dependiendo a la selección, llamaremos la información
- switch(_menuOption)
- {
- //Realizar venta
- case 1:
- //Incremento de una venta, por lo que se creará un ticket para ella y el folio
- //aumentará para dar un nuevo folio por cada venta
- _folio++;
- //Se reinicia por cada nueva compra toda la información
- for(int i = 0; i < 100; i++)
- {
- for(int j = 0; j < 5; j++)
- {
- if(sellsInfo[i][j] == null)
- sellsInfo[i][j] = "";
- else
- sellsInfo[i][j] = "";
- }
- }
- do
- {
- category = _getIntFromStringData("Categoría:"
- + "\n1) Electrónicos"
- + "\n2) Línea blanca"
- + "\n3) Muebles"
- + "\n4) Blancos"
- + "\n5) Hogar"
- + "\n6) Discos y Películas"
- + "\n7) Revistas y Libros"
- + "\n8) Ferretería"
- + "\n9) Perfumería"
- + "\n10) Farmacia"
- + "\n11) Papelería"
- + "\n12) Jardinería"
- + "\n13) Juguetería"
- + "\n14) Deportes"
- + "\n15) Regalos"
- + "\n16) Ropa"
- + "\n17) Frutas y Verduras"
- + "\n18) Pescados y Mariscos"
- + "\n19) Carnes"
- + "\n20) Salchichonería"
- + "\n21) Panadería"
- + "\n22) Tortillería"
- + "\n23) Cremas y Quesos"
- + "\n24) Lácteos"
- + "\n25) Salir");
- //Si la selección de la categoría fue mala, se dará un aviso
- if(category >= 26)
- category = 26;
- //Si la selección de la categoría fue "25" se saldrá
- if(category == 25)
- break;
- //En caso contrario, pedirá el código
- else
- //Se obtiene el código del objeto introducido por el usuario
- itemToSearch = _getStringData("Código:");
- finishSell = itemToSearch;
- switch(category)
- {
- //Electrónicos
- case 1:
- //Se busca el código en las bases de datos
- _finded = _database.electronics(itemToSearch);
- //Se convierte a mayúsculas por cualquier caso necesario
- _finded.toUpperCase();
- //Si no fue encontrado,el retorno de el método es "" (vacío)
- //Adicional, el código deberá ser diferente de "s1" ya que "s1" es el comando
- //para salir de la venta.
- if(_finded.equalsIgnoreCase("") && !itemToSearch.equalsIgnoreCase("s1"))
- _print("Objeto no encontrado");
- else
- {
- //Si el código introducido fue "s1" se rompe el búcle
- if(itemToSearch.equalsIgnoreCase("s1"))
- break;
- else
- {
- int quantity = 0;
- itemToSearch.toUpperCase();
- _items = _database.electronics(itemToSearch);
- buyedItems = _getItemName(_items);
- quantity = _getIntFromStringData("Cantidad: ");
- if(quantity == 400)
- quantity = _getIntFromStringData("La cantidad solo pueden ser valores enteros, introduzca una nueva cantidad:");
- _print("Se compró: " + buyedItems
- + "\nCantidad: " + quantity
- + "\nPrecio: $" + (_getPriceValue(_items) * quantity));
- sellsInfo[_count][0] = quantity + "";
- sellsInfo[_count][1] = buyedItems;
- sellsInfo[_count][2] = "0%";
- sellsInfo[_count][3] = (_getPriceValue(_items) * quantity) + "";
- _count++;
- totalItems += quantity;
- }
- }
- break;
- //Línea blanca
- case 2:
- break;
- //Muebles
- case 3:
- break;
- case 4:
- break;
- case 5:
- break;
- case 6:
- break;
- case 7:
- break;
- case 8:
- break;
- case 9:
- break;
- case 10:
- break;
- case 11:
- break;
- case 12:
- break;
- case 13:
- break;
- case 14:
- break;
- case 15:
- break;
- case 16:
- break;
- case 17:
- break;
- case 18:
- break;
- case 19:
- break;
- case 20:
- break;
- case 21:
- break;
- case 22:
- break;
- case 23:
- break;
- case 24:
- break;
- case 26:
- _print("Categoría no encontrada");
- break;
- }
- }while(!finishSell.equalsIgnoreCase("s1"));
- break;
- //Imprimir la venta
- case 2:
- String sell = "";
- double totalPrice = 0;
- for(int i = 0; i < sellsInfo.length; i++)
- {
- for(int j = 0; j < sellsInfo[i].length; j++)
- {
- if(sellsInfo[i][j].equalsIgnoreCase(""))
- break;
- if(j == 3)
- {
- sell += sellsInfo[i][j];
- totalPrice += convertToDouble(sellsInfo[i][j]);
- sell += "\n";
- }
- else
- {
- sell += sellsInfo[i][j];
- sell += " | ";
- }
- }
- }
- double totalCash = _getDoubleFromStringData("Total a pagar: $" + totalPrice
- + "\nEfectivo total: ");
- if(totalCash == 400.0)
- totalCash = _getDoubleFromStringData("El efectivo introducido no es válido, introduzca nuevamente el efectivo: ");
- _print(_name
- + "\nLe atendió: " + _vendorName
- + "\nRFC: " + _rfc
- + "\nDirección: " + _address
- + "\nTeléfono: " + _phone
- + "\n====================================================="
- + "\nFolio: " + _folio
- + "\nFecha: " + fullDate
- + "\nHora: " + fullHour
- + "\n====================================================="
- + "\n Cantidad | Nombre | Descuento | Total"
- + "\n " + sell
- + "\nSubtotal: $" + totalPrice
- + "\nMonedero: 0.00"
- + "\nDescuento: 0.0%"
- + "\nCargo: $0.00"
- + "\nTotal: $" + totalPrice
- + "\nEfectivo: $" + totalCash
- + "\nCambio: $" + (totalCash - totalPrice)
- + "\n¡Gracias por su preferencia, Vuelva pronto!"
- + "\nEste no es un comprobante fiscal"
- + "\nControl de Supermercados v" + _softwareData[0]
- );
- break;
- //
- case 3:
- break;
- case 4:
- break;
- case 5:
- //Se imprime la información del día
- _print(_name
- + "\nInformación del Día: " + fullDate
- + "\n====================================================="
- + "\nCantidad total de compradores: " + ((_folio)-1) );
- break;
- case 6:
- break;
- //Reinicio global del sistema
- case 8:
- int _restart = _getIntFromStringData("¿Desea reiniciar el sistema?"
- + "\n1) Si"
- + "\n2) No");
- //Si la opción elegida fue 1, es que se reiniciará el sistema
- if(_restart == 1)
- restart = true; //Se usa el valor booleano solamente para posibles referencias.
- else
- restart = false; //Si la opción elegida fue diferente de 1, es que no se quiere reiniciar el sistema
- //Ya que sabemos que si se desea reiniciar, lo hacemos
- if(restart == true)
- {
- //Por cualquier referencia generamos una nueva variable
- String vendorName = _getStringData("Ingrese el nombre del vendedor nuevo:");
- //Se almacena en la variable global _vendorName el nuevo nombre.
- _vendorName = vendorName;
- }
- else
- //Se reinicia
- _restart = 0;
- break;
- //Información del Sistema
- case 9:
- _print("Versión del Software: " + _softwareData[0]
- + "\nDesarrollado por: " + _softwareData[1]
- + "\nÚltima actualización: " + _softwareData[2]);
- break;
- }
- }
- }while(_menuOption != 10);
- }
- }
- /* Helpers.java */
- /*
- * Control de Supermercado
- */
- package elcarritomagico;
- import javax.swing.JOptionPane;
- /*
- * Class: Helpers
- * Extends: Ninguno
- * Implements: Ninguno
- * Ayuda: Métodos de ayuda para la creación del programa
- */
- public class Helpers {
- /*
- * Método: _getIntData(String Value);
- * Parámetros:
- * @Param = (String) Value;
- * @Return = (Int) _returnInt;
- * Ayuda: Retorna el valor de una String introducida (por el usuario)
- * y la convierte a entero.
- */
- public int _getIntFromStringData(String Value)
- {
- try
- {
- int _returnInt = Integer.parseInt(JOptionPane.showInputDialog(Value));
- return _returnInt;
- }
- catch(NumberFormatException ex)
- {
- //Si no fue introducido un valor "entero", se mostrará un error.
- int _returnInt = 400; //El error es marcado con un valor de "400"_vendorName
- return _returnInt;
- }
- }
- public double _getDoubleFromStringData(String Value)
- {
- try
- {
- double _returnDouble = Double.parseDouble(JOptionPane.showInputDialog(Value));
- return _returnDouble;
- }
- catch(NumberFormatException ex)
- {
- double _returnDouble = 400;
- return _returnDouble;
- }
- }
- /*
- * Método: _getStringData(String Value);
- * Parámetros:
- * @Param = (String) Value;
- * @Return = (String) _returnString;
- * Ayuda: Retorna el valor de una String
- */
- public String _getStringData(String Value)
- {
- String _returnString = JOptionPane.showInputDialog(Value);
- return _returnString;
- }
- /*
- * Método: _print(String Value);
- * Parámetros:
- * @Param = (String) Value;
- * @Return = Ninguno;
- * Ayuda: Imprime una String
- */
- public void _print(String Value)
- {
- JOptionPane.showMessageDialog(null, Value);
- }
- /*
- * Método: _print(int Value);
- * Parámetros:
- * @Param = (int) Value;
- * @Return = Ninguno;
- * Ayuda: Imprime un entero.
- */
- public void _print(int Value)
- {
- JOptionPane.showMessageDialog(null, Value);
- }
- /*
- * Método: empty(String Value);
- * Parámetros:
- * @Param = (String) Value;
- * @Return = true/false;
- * Ayuda: Mide el tamaño de el valor introducido, si es 0, está vacío
- * y por lo tanto retorna verdadero, en caso contrario, retorna falso
- */
- public boolean empty(String Value)
- {
- if(Value.length() == 0)
- return true;
- else
- return false;
- }
- /*
- * Método: empty(int Value);
- * Parámetros:
- * @Param = (int) Value;
- * @Return = true/false;
- * Ayuda: Mide el tamaño de el valor introducido, si es 0, está vacío
- * y por lo tanto retorna verdadero, en caso contrario, retorna falso
- */
- public boolean empty(int Value)
- {
- String _Value = Value+"";
- if(_Value.length() == 0)
- return true;
- else
- return false;
- }
- /*
- * Método: _getItemName(String Value);
- * Parámetros:
- * @Param = (String) Value;
- * @Return = _itemName;
- * Ayuda: Retorna el nombre del objeto comprado eliminando el costo
- */
- public String _getItemName(String Value)
- {
- String _separedItemName[] = Value.split(",");
- String _itemName = _separedItemName[0];
- return _itemName;
- }
- /*
- * Método: _getPriceValue(String Value);
- * Parámetros:
- * @Param = (String) Value;
- * @Return = _itemPrice;
- * Ayuda: Retorna el costo de un objeto comprado.
- */
- public double _getPriceValue(String Value)
- {
- double _itemPrice = 0.00;
- String _separedPriceFromItemName[] = Value.split(",");
- String itemPrice = _separedPriceFromItemName[1];
- _itemPrice = Double.parseDouble(itemPrice);
- return _itemPrice;
- }
- public int convertToInt(String Value)
- {
- int _converted = 0;
- _converted = Integer.parseInt(Value);
- return _converted;
- }
- public double convertToDouble(String Value)
- {
- double _converted = 0.00;
- _converted = Double.parseDouble(Value);
- return _converted;
- }
- }
- /* Database.java */
- package elcarritomagico;
- /*
- * Class: Database
- * Extends: Helpers
- * Implements: Ninguno
- * Ayuda: Base de datos con los métodos que incluyen la información
- * con la cual podrá ser buscado un producto por categorías
- */
- public class Database extends Helpers{
- /*
- * Método: electronics(String Value);
- * Parámetros:
- * @Param = (String) Value;
- * @Return = (String) _returnData;
- * Ayuda: Retorna el valor de una String introducida (por el usuario)
- * y la convierte a entero.
- */
- public String electronics(String Value)
- {
- String _returnData = "";
- //j = 0 | Nombre del producto
- //j = 1 | Costo del producto
- //j = 2 | Código del producto
- //j = 3 | Campo adicional
- String _electronics[][] = {
- {"Televisión LG Modelo 42LW650 3D", "12000", "42LW650", ""},//i = 0
- {"Televisión LG Modelo 42LV3550 3D", "13000", "42LV3550", ""}, //i = 1
- {"Estereo Sony Modelo SFX250", "6500", "SFX250", ""}, //i = 2
- };
- //Método de búsqueda
- for(int i = 0; i < _electronics.length; i++)
- {
- //Si se encontró el artículo, se retorna el artículo, si no, se retorna vacío
- if(Value.equalsIgnoreCase(_electronics[i][2]))
- _returnData = _electronics[i][0]+","+_electronics[i][1];
- }
- return _returnData;
- }
- }
Add Comment
Please, Sign In to add comment