Ejemplo de Trabajo Final
Ejemplo de Trabajo Final
Ejemplo de Trabajo Final
FACULTAD DE INGENIERÍA
SECCIÓN: IV52
INTEGRANTES:
LIMA – PERÚ
RESUMEN
Actualmente, Primax Gas San Antonio no cuenta con un registro de clientes. Por ende, se
busca automatizar sus registros de datos para generar estadísticas e informes mensuales
para la toma de decisiones correspondientes al área de administración.
RESUMEN.................................................................................................................................... 2
Capítulo 1: Presentación................................................................................................................ 4
Capítulo 2: Marco Teórico ............................................................................................................ 5
2.1. REVISIÓN DE LA LITERATURA.......................................................................... 5
2.2. BASE TEÓRICA ...................................................................................................... 5
2.3. CONCEPTOS CLAVE ............................................................................................. 6
2.3.1. PROCESO DE NEGOCIO DE LA EMPRESA .......................................................... 6
2.3.2. PROBLEMAS EN EL SECTOR DE GLP ENVASADO ........................................... 7
2.3.3. SISTEMAS TÉCNICOS ............................................................................................. 7
Capítulo 3: Descripción de la empresa .......................................................................................... 9
3.1. ANTECEDENTES ........................................................................................................... 11
3.2. IDENTIFICACIÓN DEL PROBLEMA .......................................................................... 11
3.3 JUSTIFICACIÓN DEL PROBLEMA .............................................................................. 13
3.4 HIPÓTESIS DE SOLUCIÓN ........................................................................................... 15
3.5 HERRAMIENTAS DE ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS ................ 16
Capítulo 4: Propuesta de mejora cualitativa o mejora del tema .................................................. 22
4.1. MAPEO DE PROCESOS AS-IS /TO-BE ....................................................................... 22
4.1.1. AS-IS (SITUACIÓN ACTUAL)............................................................................... 22
4.1.2. TO-BE (SITUACIÓN FUTURA) ............................................................................. 23
4.1.3. VENTAJES DE TO-BE SOBRE AS-IS ................................................................... 28
Capítulo 5: Propuesta del algoritmo y componente en Python ................................................... 29
5.1. CÓDIGO EN PYTHON ................................................................................................... 29
5.2. HERRAMIENTAS Y MÓDULOS UTILIZADOS PARA EL DESARROLLO ............ 35
CONCLUSIONES ...................................................................................................................... 35
RECOMENDACIONES ............................................................................................................. 35
BIBLIOGRAFÍA......................................................................................................................... 36
ANEXOS..................................................................................................................................... 38
Capítulo 1: Presentación
El COVID-19 y el impacto que ha tenido en los negocios, ha sido muy significativo para
todas las empresas, puesto que el contacto físico es casi inevitable en cualquier
establecimiento, y como consecuencia, se ha dejado de operar y generar diversas
utilidades en los distintos sectores económicos. Sin embargo, algunas empresas buscan
mantenerse a flote en el negocio a través de la venta en delivery, tal es el caso de la
empresa Primax Gas San Antonio que busca optimizar el registro de sus clientes
habituales.
Primax Gas San Antonio es una empresa distribuidora de gas ubicada en el distrito de
Carabayllo, que lleva operando en el lugar alrededor de 15 años. La empresa se encarga
de la distribución y venta de tres tipos de gas GLP, que vendrían a ser las marcas Primax,
Progas y Primax Plus.
Los constantes problemas que presentan los negocios por falta de una buena organización,
como lo son las pérdidas y quejas de sus potenciales clientes, hacen de la solución que
planteamos para la empresa una herramienta bastante útil y en efecto necesaria, porque
comprobamos que la solución en el programa Python que planteamos, va a lograr que se
genere una mejor organización, mucho más ordenada y bastante simplificada que como
consecuencia disminuirá e incluso erradicará los recurrentes problemas que podrían
existir dentro de la empresa. De este modo, la empresa adquirirá mayor precisión y
seguridad en los registros, los clientes obtendrán un mejor servicio por parte de la
empresa, por consiguiente, la mype obtendrá una mayor clientela que esta vez sea fija y
un notable incremento en las ventas.
Capítulo 2: Marco Teórico
Este capítulo abarca la recopilación de una investigación previa, las bases teóricas y los
conceptos fundamentales que ayudarán a comprender el desarrollo del trabajo de
investigación, desde la indagación del lenguaje de programación Python hasta los
conceptos básicos que forman parte del negocio de este proyecto.
A continuación, se presentan las bases teóricas que sustentan la investigación acerca del
uso del lenguaje de programación Python y lo que se requiere hacer para lograr la
satisfacción del cliente.
De acuerdo con Frittelli et al. (2013), durante años ha existido una controversia entre la
enseñanza adecuada de la programación. De hecho, cada centro de estudios elige la
alternativa idónea para ellos. La ventaja del uso de Python es que este es un lenguaje
multiparadigma, por lo que admite el desarrollo de programas en forma estructurada,
orientada a objetos y funcional. Python presenta simplicidad en el código fuente; por lo
tanto, se utiliza tanto en el campo estudiantil como en el profesional. Un programa
ejecutado en Python comprende únicamente un código que elabora una tarea específica.
En definitiva, dicho programa es la alternativa ideal para ser aplicada en un caso, ya sea
simple o complejo.
Jamaluddin y Ruswanti (2017) sugieren que, para perdurar en una industria, la empresa
se ve en la necesidad de crear una estrategia que satisfaga a sus clientes. Esta acción
origina la lealtad de los usuarios de sus productos o servicios, lo cual es la manera ideal
de fomentar una competitividad sostenible. Asimismo, Ngo y Nguyen (2016) señalan que
para toda empresa que desee un trato estrecho con el cliente es primordial la satisfacción
de éste.
Para lograr que los clientes estén satisfechos con la empresa, ésta deberá hacer uso de un
código de programación en Python que permita la obtención del stock actualizado de cada
uno de los productos, el registro correcto de los datos de cada cliente, el total de ventas y
los ingresos del mes, así como la cantidad de envíos por zonas distribuidas, de modo que,
indique el momento preciso en el que se necesitará el abastecimiento de insumos, la
demanda de cada producto y las zonas a las que se realizan más envíos.
Como indicó Durán (2017), en el formato columnar, todos los valores de un atributo de
la tabla son almacenados como un vector usando múltiples bloques de memoria y todos
los vectores de atributos de una tabla son almacenados secuencialmente. Al organizar los
valores en la forma de un vector de atributos permite una fácil compresión de datos y
también permite una alta velocidad de escaneo y filtraje. Esto resulta en mucho
procesamiento secuencial donde el formato columnar tiene una enorme ventaja
comparada con la tradicional base de datos de disco orientado a filas. Es de suma
importancia almacenar la información de los clientes y productos en una base de datos
para administrar el negocio correctamente y poseer un fácil acceso a la data.
Adicionalmente, esto ocasiona la mejoría en la atención al consumidor. En el proceso de
factura es necesario el registro de los datos completos del cliente, la zona de delivery y la
cantidad de los productos a vender incluyendo sus respectivos códigos. El código de
programación será capaz de rellenar la descripción del producto y el precio total a pagar,
que incluye el precio del producto y el precio de delivery de manera automática. Además,
deberá disminuir los productos vendidos del total de stock disponible.
Es una serie de actividades que realizan las personas al intentar adquirir un producto o
servicio. En este proceso, los posibles compradores eligen el producto o servicio a
adquirir. Además, analizan la razón de dicha necesidad y los beneficios que su adquisición
podría producir.
Es una serie de actividades, tales como entrega de cupones o contacto con el comprador,
que se ejecutan luego de haber terminado una venta con la finalidad de obtener la
fidelización de dicha persona. Asimismo, suele ser el contacto de la empresa con el
cliente, vía telefónica o email para conocer la experiencia de éste.
2.3.2.2. Trasiego
Es el hecho de envasar los cilindros con menor cantidad de GLP a la que deberían tener,
lo que provoca que se agote en poco tiempo y afecta la economía del consumidor.
2.3.3.2. Python
Es un lenguaje interactivo que posee una gran facilidad para la programación orientada a
objetos. Se estima que Python es un lenguaje multiparadigma, debido a que es imperativo
y eficaz. Ofrece una gran variedad de estructuras de datos, tales como las listas, por lo
que es calificado como un lenguaje de alto nivel. Por otro lado, Python es definido como
un lenguaje dinámicamente tipado. Esto quiere decir que, durante su uso no es
imprescindible declarar el tipo de dato que contendrá cierta variable, por el contrario, el
tipo de dato se determina al instante en el que se ejecuta el código (Challenger et al, 2014).
Es una extensión de Google Research que le brinda acceso a cualquier usuario para
escribir y ejecutar un código escrito en lenguaje Python dentro de dicho navegador.
2.3.3.5. StarUML
Es una herramienta utilizada para el modelamiento de software basado en los estándares
Unified Modeling Language y Model Driven Arquitecture. Se emplea para la realización
de diseños y diagramas que posteriormente servirán como guías para la creación de
códigos en lenguajes de programación.
PRODUCTOS:
CATÁLOGO DE PRODUCTOS:
Rubro:
Número de RUC: 10406392363 - ESPINOZA PANTOJA FEDERICO RUBEN
Tipo Contribuyente: PERSONA NATURAL CON NEGOCIO
Nombre Comercial: DISTRIBUIDORA PRIMAX GAS SAN ANTONIO
Domicilio Fiscal: Av. Saco Rojas mz D9 - Lt 45, San Antonio
Actividad(es) Económica(s): TIPO DE VENTA DE BALONES AL POR MENOR
Sistema Contabilidad: Manual
Misión:
Ser una empresa de energía que contribuya al desarrollo sustentable, mejorando la calidad
de vida a través de la comercialización de gas doméstico en Lima.
Visión:
Ser líderes en Carabayllo - Lima por la calidad de nuestros productos y la excelencia en
nuestros servicios, enfocándonos en la creación de valor para todos.
POLÍTICA DE LA EMPRESA
● La empresa brinda un trato cordial a todos sus clientes, y respeta sus decisiones,
tanto solicitudes como reclamos.
● Todos los trabajadores de la empresa deben estar capacitados, para mantener un
trabajo correcto y ordenado.
● Por la compra de cada producto, el cliente puede elegir entre platos, lavavajillas,
taper, lejía, etc; como un obsequio de la empresa.
● La empresa proporciona un crédito a los clientes más cercanos.
3.1. ANTECEDENTES
Debido a la pandemia, el servicio de delivery a nivel macro tuvo un crecimiento de 250%
en el último año, según el diario Gestión (2021). Por lo que las empresas de este rubro
han reaccionado positivamente al uso de las tecnologías, por ejemplo, creando sus páginas
webs, sus apps y generando publicidades en las redes sociales con la finalidad de retener
a sus clientes y generar utilidades. Por su lado, la distribuidora de gas GLP ha tenido una
regular participación en el mercado durante los años. Es decir, logró posicionarse como
una de las mayores distribuidoras en la zona de Carabayllo, vendiendo como mínimo 80
balones por día. Sin embargo, en los últimos meses, han existido diversas quejas de los
clientes acerca de la empresa. Otra razón de su irregularidad es el deficiente uso de las
tecnologías. Ha tenido complicaciones en el área administrativa. Por ejemplo, sus
operaciones de registros generales (de venta, almacén, clientes) lo realizan en pizarras y
cuadernos generando errores en la edición, demora en los cálculos y se expone a las
pérdidas de datos. Además, carece de datos estadísticos financieros, administrativos.
Actualmente, según sus registros, las ventas de los balones de gas de la distribuidora
disminuyeron en 24.35% en los últimos 5 meses.
EFECTOS:
La falta de automatización de registros en el área administrativa genera los siguientes
efectos. En primer lugar, los problemas con los registros de almacén, ventas y pedidos.
Debido a que el 26% de los clientes dieron a conocer que los repartidores cometieron
errores en la entrega de sus pedidos y que el 36.4% de los trabajadores indicaron no contar
con registros automatizados, sino manuales. Asimismo, carece de registro de clientes, por
ende, no cuenta con buena relación con los mismos, no otorga el beneficio al crédito, ni
promociones, ni seguimiento de sus compras. Esto es evidencia, ya que el 35% de los
clientes lo afirmaron. Finalmente, también se encontró que el 18% de los clientes
presentaron incidencias en la calidad de servicio al cliente
En conclusión, debido a las herramientas que fueron utilizadas como el diagrama de
Pareto e Ishikawa, pudimos determinar los principales problemas que afectan en el área
administrativa de la empresa. Además, el porcentaje exacto en el que se presentan, como
también las causas por las que se originan dichos problemas. Considerando todos estos
aspectos, obtuvimos el problema con mayor prioridad para la empresa, el cual toma origen
en la falta de automatización de los registros en el área administrativa.
LISTA DE REQUERIMIENTOS:
Registrar clie
FRQ - 001 Registrar al cliente
Importancia Fundamental
Importancia Fundamental
Importancia Fundamental
FRQ - 004 Seleccionar cantidad
Importancia Fundamental
Importancia Fundamental
Importancia Fundamental
Importancia Fundamental
CASO DE USO
● El sistema debe registrar al cliente mientras se solicita el pedido.
● El sistema debe pedir sus datos personales (nombre, DNI, dirección, teléfono) por
primera vez.
● El sistema debe de registrar los datos personales independientemente y validarlos
● El sistema debe preguntar qué tipo de balón de gas y la cantidad de balones
● El sistema debe consultar el stock del producto a vender (ver registro en Microsoft
Excel)
● El sistema debe confirmar si existe stock
SI: El sistema valida la cantidad de balones a vender
NO: El sistema deberá informar que no hay stock y dar alerta para
comunicarse con el proveedor
● El sistema debe preguntar qué regalo desea (plato, lejía, lavavajilla, táper)
● El sistema debe confirmar si existe stock de regalo
SI: El sistema valida la cantidad de regalo escogido
NO: El sistema deberá informar que no hay stock de regalo y dar alerta
para comunicarse con el proveedor
● El sistema debe almacenar cada información en diferentes listas según cada clase
● El sistema debe mostrar los detalles del pedido (nombre - dirección - producto -
tipo - regalo)
● El sistema debe mostrar el monto total del pedido
● El sistema debe preguntar si desea continuar
<< ESTA SUCESIÓN SUCEDE CADA VEZ QUE VENDE UN PRODUCTO>>
Al finalizar las ventas
● El sistema debe calcular diariamente los pedidos respectivamente con los
clientes, tipo de balón y el monto total
A la semana: EL administrado pide los datos estadísticos
● El sistema debe mostrar el historial general de los registros obtenidos
Estas fuentes son de elaboración propia, las dos interfaces están conectadas mediante un
“extend”, debido a que, la interfaz registrar pedido necesita de la interfaz registrar cliente.
Capítulo 4: Propuesta de mejora cualitativa o mejora del tema
Cada uno de estos botones cumple con una tarea específica. En primer lugar, al hacer clic
en el botón Registrar, se abrirá una nueva ventana donde el administrador o recepcionista
de pedidos registrará los datos personales del cliente, el pedido a realizar, el premio y tipo
de pago. Asimismo, cuenta con dos botones adicionales, Aceptar para guardar los datos
proporcionados y Cancelar para desecharlos.
Al seleccionar en el botón Listar, éste dará acceso a una nueva ventana que mostrará una
base de datos, proporcionando información como la fecha de venta, nombre del cliente,
tipo de pago e importe total. Si el administrador no desea seguir viendo dicha pestaña,
dará clic al botón Cerrar.
Por otro lado, al dar clic en el botón Estadísticas, el sistema desplegará una ventana que
mostrará el resumen de cifras relevantes para la empresa, como el tipo de obsequio que
más se entrega al comprador, la cantidad de balones vendidos por tipo y el porcentaje del
medio de pago. Para salir de esta ventana, se presiona el botón Cerrar.
Por último, para cerrar la ventana del Sistema de Registros Primax, se da clic en el botón
Salir y se muestra el siguiente mensaje:
4.1.3. VENTAJAS DE TO-BE SOBRE AS-IS
Para desarrollar el programa se empleó un archivo en formato xlsx el cual permite guardar
datos en formato de una tabla estructurada. Además, se utilizó la extensión “Google
Colaboratory” para ejecutar el código en lenguaje Python, desde ahí se puede cargar datos
desde la unidad, leer y escribir documentos en formato CSV y Excel. Finalmente, se
dispuso de las librerías para el lenguaje en programación en Python como Pandas,
Ipywidgets, Matplotlib, Numpy y Datetime.
Clase registro
Administrar registro
Gráfico circular (Cantidad de obsequios)
CONCLUSIONES
• Se identificó el problema principal de la disminución de las ventas en la empresa
Primas Gas San Antonio con el fin de plantear una solución.
• Se diseñó un software en lenguaje Python que optimiza el registro de ventas.
• Se elaboró estadísticas de la venta de los productos (Gráfico de barras, Gráfico
circular, Histograma, entre otros).
• Se podrán almacenar todos los datos registrados por cada compra (Cantidad
vendida, Cantidad disponible, Costos, entre otros).
• Se concluye que esta herramienta facilita el trabajo y lo hace más seguro.
RECOMENDACIONES
• Se recomienda a la empresa Primas Gas San Antonio emplear el siguiente trabajo,
con el fin de optimizar la venta de sus productos.
• Se recomienda usar la herramienta de Google Collab porque permite ver el
resultado de la ejecución, teniendo ventaja a otros programas.
• Se recomienda a la empresa Primas Gas San Antonio capacitar a sus trabajadores
encargados de ejecutar el programa.
• Se recomienda usar otras librerías más especializadas para tener un interfaz más
interactivo (Tinker).
BIBLIOGRAFÍA
- Acosta, A. M., Durán, E. G., & Padilla, R. P. (2018). Impacto de la calidad de los
servicios sobre la satisfacción de los clientes en una empresa de mantenimiento.
Revista Científica Compendium, 21(40). Recuperado de
https://revistas.uclave.org/index.php/Compendium/article/view/1656/945
[Consulta: 29 de septiembre de 2021].
- Frittelli, V., Serrano, D., Teicher, R., Steffolani, F., Tartabini, M., Fernández, J.,
& Bett, G. (2013). Uso de Python como Lenguaje Inicial en Asignaturas de
Programación. Editor Responsable, 132. Recuperado de
https://www.researchgate.net/profile/Horacio-
Martin/publication/277130560_Desarrollo_epistemico_de_educandos_mediante
_un_entorno_de_educacion_virtual/links/5561d45308ae86c06b65ea99/Desarroll
o-epistemico-de-educandos-mediante-un-entorno-de-educacion-
virtual.pdf#page=133 [Consulta: 6 de octubre de 2021].
- Jamaluddin, J., & Ruswanti, E. (2017). Impact of service quality and customer
satisfaction on customer loyalty: A case study in a private Hospital in Indonesia.
IOSR Journal of Business and Management, 19(5), 23-33. Recuperado de
https://www.iosrjournals.org/iosr-jbm/papers/Vol19-issue5/Version-
1/D1905012333.pdf [Consulta: 1 de octubre de 2021].
import pandas as pd
import ipywidgets as widgets
import matplotlib.pyplot as plt
import numpy as np
import datetime
class Registro:
fecha= datetime.datetime.now()
nombre= ""
telefono=""
direccion=""
tipodegas= ""
precio= 0.0
cant= 0
regalo= ""
tipodepago=""
def dataRow(self):
return [self.fecha, self.nombre, self.telefono, self.direccion, self.tipodegas,
self.precio, self.cant, self.regalo, self.tipodepago, self.importetotal()]
class AdmRegistros:
#dataframe
dfRegistros= None
nombrearchivoexcel= ""
nombrehojaexcel= ""
def __init__(self, nombrearchivoexcel, nombrehojaexcel):
self.nombrearchivoexcel= nombrearchivoexcel
self.nombrehojaexcel= nombrehojaexcel
self.dfRegistros= pd.read_excel(nombrearchivoexcel,sheet_name=
nombrehojaexcel)
def listarR(self):
print(self.dfRegistros)
def mostrarestadistica(self):
print("---------- ESTADISTICA DE LAS CANTIDADES DE BALONES ----------
")
print(self.dfRegistros["Cant"].describe())
print("---------- ESTADISTICA DEL IMPORTE TOTAL ----------")
print(self.dfRegistros["Importe total "].describe())
print(self.dfRegistros.groupby(["Tipo de obsequio"])["Cant"].count())
class MenuForm:
itemLayout = None
formLayout = None
btnRegistrar = None
btnListar = None
btnEstadisticas = None
btnSalir = None
menuItems = None
form = None
def __init__(self, onButtonClicked):
self.itemLayout = widgets.Layout(display='flex', flex_flow='row',
justify_content='space-between')
self.formLayout =
widgets.Layout(display='flex',flex_flow='column',border='solid 2px red',
align_items='stretch',width='40%')
self.btnRegistrar = widgets.Button(description="Registrar",
button_style='success')
self.btnListar = widgets.Button(description="Listar", button_style='warning')
self.btnEstadisticas = widgets.Button(description="Estadisticas",
button_style='info')
self.btnSalir = widgets.Button(description="Salir", button_style='danger')
self.btnRegistrar.on_click(onButtonClicked)
self.btnListar.on_click(onButtonClicked)
self.btnEstadisticas.on_click(onButtonClicked)
self.btnSalir.on_click(onButtonClicked)
self.menuItems = [
widgets.Box([widgets.HTML(value='<h1>Sistema de Regitros Primax</h1',
)], layout=self.itemLayout),
widgets.Box([self.btnRegistrar],layout=self.itemLayout),
widgets.Box([self.btnListar],layout=self.itemLayout),
widgets.Box([self.btnEstadisticas],layout=self.itemLayout),
widgets.Box([self.btnSalir],layout=self.itemLayout)]
self.form = widgets.Box(self.menuItems, layout=self.formLayout)
display(self.form)
self.form.layout.display = 'none'
def show(self):
self.form.layout.display = ''
def close(self):
self.form.layout.display = 'none'
class RegistrarForm:
itemLayout = None
formLayout = None
textFecha = datetime.datetime.now()
textDatos = None
numTELEFONO = None
txtDireccion = None
tipodeGAS = None
PRECIO = None
cantbalones = None
Regalo = None
tipodePAGO = None
btnAceptar= None
btnCancelar = None
form = None
formItems = None
def show(self):
self.form.layout.display = ''
def close(self):
self.form.layout.display = 'none'
class ListarForm:
itemLayout = None
formLayout = None
interactivePlot = None
output = None
btnCerrar = None
form = None
formItems = None
def __init__(self, onListado, onButtonClicked):
self.itemLayout = widgets.Layout(display='flex', flex_flow='row',
justify_content='space-between')
self.formLayout =
widgets.Layout(display='flex',flex_flow='column',border='solid 2px',
align_items='stretch',width='100%')
self.htmlTitle = widgets.HTML(value="<h1>Listado de Registros</h1>",
placeholder='', description='')
self.interactivePlot = widgets.interactive(onListado)
self.output = self.interactivePlot.children[-1]
self.output.layout.height = '500px'
self.btnCerrar = widgets.Button(description="Cerrar", button_style='danger')
self.btnCerrar.on_click(onButtonClicked)
self.formItems = [
widgets.Box([self.htmlTitle], layout=self.itemLayout),
widgets.Box([self.interactivePlot], layout=self.itemLayout),
widgets.Box([self.btnCerrar], layout=self.itemLayout)
]
self.form = widgets.Box(self.formItems, layout=self.formLayout)
display(self.form)
self.form.layout.display = 'none'
def show(self):
self.form.layout.display = ''
def close(self):
self.form.layout.display = 'none'
class EstadisticasForm:
itemLayout = None
formLayout = None
interactivePlot = None
output = None
btnCerrar = None
form = None
formItems = None
def __init__(self, onEstadisticas, onButtonClicked):
self.itemLayout = widgets.Layout(display='flex', flex_flow='row',
justify_content='space-between')
self.formLayout =
widgets.Layout(display='flex',flex_flow='column',border='solid 2px',
align_items='stretch',width='60%')
self.htmlTitle = widgets.HTML(value="<h1>Estadísticas Primax</h1>",
placeholder='', description='')
self.interactivePlot = widgets.interactive(onEstadisticas)
self.output = self.interactivePlot.children[-1]
self.btnCerrar = widgets.Button(description="Cerrar", button_style='danger')
self.btnCerrar.on_click(onButtonClicked)
self.formItems = [
widgets.Box([self.htmlTitle], layout=self.itemLayout),
widgets.Box([self.interactivePlot], layout=self.itemLayout),
widgets.Box([self.btnCerrar], layout=self.itemLayout)
]
self.form = widgets.Box(self.formItems, layout=self.formLayout)
display(self.form)
self.form.layout.display = 'none'
def show(self):
self.form.layout.display = ''
def close(self):
self.form.layout.display = 'none'
class Sistema:
admRegistros = None
menuForm = None
registrarForm = None
listarForm = None
estadisticasForm = None
mensajes = None
def __init__(self):
self.admRegistros = AdmRegistros("REGISTRO PRIMAX GAS.xlsx",
"Hoja1")
self.mensajes = []
def onMenuButtonClicked(self,button):
self.menuForm.close()
if (button.description=="Registrar"):
self.showRegistrarForm()
elif (button.description=="Listar"):
self.showListarForm()
elif (button.description=="Estadisticas"):
self.showEstadisticasForm()
else:
self.salir()
def showListarForm(self):
self.listarForm = ListarForm(self.listarR, self.onCerrarListadoClicked)
self.listarForm.show()
def showEstadisticasForm(self):
self.estadisticasForm =
EstadisticasForm(self.mostrarestadistica,self.onCerrarEstadisticasClicked)
self.estadisticasForm.show()
def limpiarMensajes(self):
#self.registrarForm.message("", "")
self.mensajes.clear()
def registrarR(self):
registro = self.IngresarFormulario()
if (registro != None):
self.admRegistros.registrarR(registro)
self.registrarForm.close()
self.menuForm.show()
def listarR(self):
self.admRegistros.listarR()
def mostrarestadistica(self):
self.admRegistros.mostrarestadistica()
def ejecutar(self):
self.showMenuForm()
def salir(self):
print("Gracias por usar el sistema atte PRIMAX")
#Programa Principal
sistema = Sistema()
sistema.ejecutar()
https://colab.research.google.com/drive/1n92jGx7faf1ytY37Kj9H-Rqo255xRQO1
Cuadro de balance: (Inventarios)