Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- TODO:
- 1) Quitar lo que no sirve
- 2) Escribir output
- """
- import sys
- import random
- from time import *
- from PySide import QtGui, QtCore
- # Camiones, probabilidad, probabilidad acumulada.
- CAMIONES = [(0, 0.5, 0.5), (1, 0.25, 0.75), (2, 0.15, 0.9), (3, 0.1, 1.0)]
- # Minutos, probabilidad, probabilidad acumulada.
- LLEGADAS = [(20, 0.02, 0.02), (25, 0.08, 0.1), (30, 0.12, 0.22),
- (35, 0.25, 0.47), (40, 0.2, 0.67), (45, 0.15, 0.82),
- (50, 0.1, 0.92), (55, 0.05, 0.97), (60, 0.03, 1.0)]
- _3PERSONAS = [(20, 0.05, 0.05), (25, 0.1, 0.15), (30, 0.2, 0.35), (35, 0.25, 0.6),
- (40, 0.12, 0.72), (45, 0.1, 0.82), (50, 0.08, 0.9),
- (55, 0.06, 0.96), (60, 0.04, 1.0)]
- _4PERSONAS = [(15, 0.05, 0.05), (20, 0.15, 0.2), (25, 0.2, 0.4),
- (30, 0.2, 0.6), (35, 0.15, 0.75), (40, 0.12, 0.87),
- (45, 0.08, 0.95), (50, 0.04, 0.99), (55, 0.01, 1.0)]
- _5PERSONAS = [(10, 0.1, 0.1), (15, 0.18, 0.28), (20, 0.22, 0.5),
- (25, 0.18, 0.68), (30, 0.1, 0.78), (35, 0.08, 0.86),
- (40, 0.06, 0.92), (45, 0.05, 0.97), (50, 0.03, 1.0)]
- _6PERSONAS = [(5, 0.12, 0.12), (10, 0.15, 0.27), (15, 0.26, 0.53),
- (20, 0.15, 0.68), (25, 0.12, 0.8), (30, 0.08, 0.88),
- (35, 0.06, 0.94), (40, 0.04, 0.98), (45, 0.02, 1.0)]
- tiempos_llegadas = []
- hora_llegada = []
- hora_inicio = []
- tiempo_servicio = []
- hora_fin = []
- ocio_personal = []
- tiempo_espera = []
- cola = []
- comieron = []
- cola_aux = []
- atendido = []
- class MainWindow(QtGui.QMainWindow):
- def __init__(self, parent=None):
- super(MainWindow, self).__init__(parent)
- self.initUI()
- def initUI(self):
- """ Starts Window GUI. """
- self.statusBar().showMessage('Listo.')
- self.widget = MainWidget()
- self.setCentralWidget(self.widget)
- self.setGeometry(300, 300, 1100, 700)
- self.setWindowTitle('Simulador de Colas - Camiones')
- self.setWindowIcon(QtGui.QIcon('icon.png'))
- self.show()
- class MainWidget(QtGui.QWidget):
- def __init__(self, parent=None):
- super(MainWidget, self).__init__(parent)
- self.initUI()
- def initUI(self):
- """ Starts MainWidget GUI. """
- self.grid = QtGui.QGridLayout()
- self.grid.setSpacing(10)
- self.valida = QtGui.QDoubleValidator()
- self.valida_workers = QtGui.QIntValidator(1,6)
- self.groupbox = QtGui.QGroupBox("Opciones de Inicio")
- self.salario = QtGui.QLabel('Salario por hora')
- self.salario_edit = QtGui.QLineEdit('25')
- self.salario_edit.setValidator(self.valida)
- self.salario_edit.setMaximumWidth(45)
- self.hora_extra = QtGui.QLabel('Hora extra')
- self.hora_extra_edit = QtGui.QLineEdit('37.5')
- self.hora_extra_edit.setValidator(self.valida)
- self.hora_extra_edit.setMaximumWidth(45)
- self.costo_espera_camion = QtGui.QLabel('Costo de espera por trailer por hora')
- self.costo_espera_camion_edit = QtGui.QLineEdit('100')
- self.costo_espera_camion_edit.setValidator(self.valida)
- self.costo_espera_camion_edit.setMaximumWidth(45)
- self.costo_opera_bodega = QtGui.QLabel('Costo de operar la bodega por hora')
- self.costo_opera_bodega_edit = QtGui.QLineEdit('500')
- self.costo_opera_bodega_edit.setValidator(self.valida)
- self.costo_opera_bodega_edit.setMaximumWidth(45)
- self.hora_entrada = QtCore.QTime(11, 00)
- self.hora_entrada_label = QtGui.QLabel('Hora de entrada')
- self.hora_entrada_edit = QtGui.QTimeEdit()
- self.hora_entrada_edit.setTime(self.hora_entrada)
- self.hora_salida = QtCore.QTime(19, 30)
- self.hora_salida_label = QtGui.QLabel('Hora de salida')
- self.hora_salida_edit = QtGui.QTimeEdit()
- self.hora_salida_edit.setTime(self.hora_salida)
- self.empleados = QtGui.QLabel('No. de empleados')
- self.empleados_edit = QtGui.QLineEdit('3')
- self.empleados_edit.setValidator(self.valida_workers)
- self.empleados_edit.setMaximumWidth(45)
- self.genera_button = QtGui.QPushButton('Simular')
- self.genera_button.clicked.connect(imprime)
- self.genera_button.setMaximumWidth(60)
- self.output = QtGui.QTextEdit()
- self.output.setReadOnly(True)
- self.vbox = QtGui.QVBoxLayout()
- self.vbox.addWidget(self.salario)
- self.vbox.addWidget(self.salario_edit)
- self.vbox.addWidget(self.hora_extra)
- self.vbox.addWidget(self.hora_extra_edit)
- self.vbox.addWidget(self.costo_espera_camion)
- self.vbox.addWidget(self.costo_espera_camion_edit)
- self.vbox.addWidget(self.costo_opera_bodega)
- self.vbox.addWidget(self.costo_opera_bodega_edit)
- self.vbox.addWidget(self.hora_entrada_label)
- self.vbox.addWidget(self.hora_entrada_edit)
- self.vbox.addWidget(self.hora_salida_label)
- self.vbox.addWidget(self.hora_salida_edit)
- self.vbox.addWidget(self.empleados)
- self.vbox.addWidget(self.empleados_edit)
- self.vbox.addWidget(self.genera_button)
- self.grid.addLayout(self.vbox, 0, 1)
- self.grid.addWidget(self.output, 0, 3, 2, 5)
- self.grid.setColumnStretch(1,2)
- self.grid.setColumnStretch(2,1)
- self.grid.setColumnStretch(3,7)
- self.setLayout(self.grid)
- self.show()
- def get_x_numbers(x):
- """ Regresa una lista de x numeros aleatorios """
- numbers = []
- for i in range(x):
- numbers.append(random.random())
- return numbers
- def get_camiones():
- """ Genera los camiones iniciales """
- if inicio <= CAMIONES[0][2]:
- x = 0
- elif inicio > CAMIONES[0][2] and inicio <= CAMIONES[1][2]:
- x=1
- elif inicio > CAMIONES[1][2] and inicio <= CAMIONES[2][2]:
- x = 2
- else:
- x = 3
- return x
- def get_tiempo_llegadas(index):
- """ Regresa los minutos que tardo el siguiente camion en llegar dependiendo
- del numero aleatorio generado en numeros[index].
- La tupla tiene el formato: (Minutos, probabilidad, probabilidad acumulada).
- """
- if numeros[index] <= LLEGADAS[0][2]:
- tiempo_llegadas = LLEGADAS[0][0]
- elif numeros[index] > LLEGADAS[0][2] and numeros[index] <= LLEGADAS[1][2]:
- tiempo_llegadas = LLEGADAS[1][0]
- elif numeros[index] > LLEGADAS[1][2] and numeros[index] <= LLEGADAS[2][2]:
- tiempo_llegadas = LLEGADAS[2][0]
- elif numeros[index] > LLEGADAS[2][2] and numeros[index] <= LLEGADAS[3][2]:
- tiempo_llegadas = LLEGADAS[3][0]
- elif numeros[index] > LLEGADAS[3][2] and numeros[index] <= LLEGADAS[4][2]:
- tiempo_llegadas = LLEGADAS[4][0]
- elif numeros[index] > LLEGADAS[4][2] and numeros[index] <= LLEGADAS[5][2]:
- tiempo_llegadas = LLEGADAS[5][0]
- elif numeros[index] > LLEGADAS[5][2] and numeros[index] <= LLEGADAS[6][2]:
- tiempo_llegadas = LLEGADAS[6][0]
- elif numeros[index] > LLEGADAS[6][2] and numeros[index] <= LLEGADAS[7][2]:
- tiempo_llegadas = LLEGADAS[7][0]
- else:
- tiempo_llegadas = LLEGADAS[8][0]
- return tiempo_llegadas
- def get_tiempo_servicio(index, personas):
- """ Regresa los minutos que tardo el servicio dependiendo del numero
- de personas y el aleatorio generado en numeros1[index].
- La tupla tiene el formato: (Minutos, probabilidad, probabilidad acumulada).
- """
- if personas == '3':
- if numeros1[index] <= _3PERSONAS[0][2]:
- tiempo_servicio = _3PERSONAS[0][0]
- elif numeros1[index] > _3PERSONAS[0][2] and numeros1[index] <= _3PERSONAS[1][2]:
- tiempo_servicio = _3PERSONAS[1][0]
- elif numeros1[index] > _3PERSONAS[1][2] and numeros1[index] <= _3PERSONAS[2][2]:
- tiempo_servicio = _3PERSONAS[2][0]
- elif numeros1[index] > _3PERSONAS[2][2] and numeros1[index] <= _3PERSONAS[3][2]:
- tiempo_servicio = _3PERSONAS[3][0]
- elif numeros1[index] > _3PERSONAS[3][2] and numeros1[index] <= _3PERSONAS[4][2]:
- tiempo_servicio = _3PERSONAS[4][0]
- elif numeros1[index] > _3PERSONAS[4][2] and numeros1[index] <= _3PERSONAS[5][2]:
- tiempo_servicio = _3PERSONAS[5][0]
- elif numeros1[index] > _3PERSONAS[5][2] and numeros1[index] <= _3PERSONAS[6][2]:
- tiempo_servicio = _3PERSONAS[6][0]
- elif numeros1[index] > _3PERSONAS[6][2] and numeros1[index] <= _3PERSONAS[7][2]:
- tiempo_servicio = _3PERSONAS[7][0]
- else:
- tiempo_servicio = _3PERSONAS[8][0]
- elif personas == '4':
- if numeros1[index] <= _4PERSONAS[0][2]:
- tiempo_servicio = _4PERSONAS[0][0]
- elif numeros1[index] > _4PERSONAS[0][2] and numeros1[index] <= _4PERSONAS[1][2]:
- tiempo_servicio = _4PERSONAS[1][0]
- elif numeros1[index] > _4PERSONAS[1][2] and numeros1[index] <= _4PERSONAS[2][2]:
- tiempo_servicio = _4PERSONAS[2][0]
- elif numeros1[index] > _4PERSONAS[2][2] and numeros1[index] <= _4PERSONAS[3][2]:
- tiempo_servicio = _4PERSONAS[3][0]
- elif numeros1[index] > _4PERSONAS[3][2] and numeros1[index] <= _4PERSONAS[4][2]:
- tiempo_servicio = _4PERSONAS[4][0]
- elif numeros1[index] > _4PERSONAS[4][2] and numeros1[index] <= _4PERSONAS[5][2]:
- tiempo_servicio = _4PERSONAS[5][0]
- elif numeros1[index] > _4PERSONAS[5][2] and numeros1[index] <= _4PERSONAS[6][2]:
- tiempo_servicio = _4PERSONAS[6][0]
- elif numeros1[index] > _4PERSONAS[6][2] and numeros1[index] <= _4PERSONAS[7][2]:
- tiempo_servicio = _4PERSONAS[7][0]
- else:
- tiempo_servicio = _4PERSONAS[8][0]
- elif personas == '5':
- if numeros1[index] <= _5PERSONAS[0][2]:
- tiempo_servicio = _5PERSONAS[0][0]
- elif numeros1[index] > _5PERSONAS[0][2] and numeros1[index] <= _5PERSONAS[1][2]:
- tiempo_servicio = _5PERSONAS[1][0]
- elif numeros1[index] > _5PERSONAS[1][2] and numeros1[index] <= _5PERSONAS[2][2]:
- tiempo_servicio = _5PERSONAS[2][0]
- elif numeros1[index] > _5PERSONAS[2][2] and numeros1[index] <= _5PERSONAS[3][2]:
- tiempo_servicio = _5PERSONAS[3][0]
- elif numeros1[index] > _5PERSONAS[3][2] and numeros1[index] <= _5PERSONAS[4][2]:
- tiempo_servicio = _5PERSONAS[4][0]
- elif numeros1[index] > _5PERSONAS[4][2] and numeros1[index] <= _5PERSONAS[5][2]:
- tiempo_servicio = _5PERSONAS[5][0]
- elif numeros1[index] > _5PERSONAS[5][2] and numeros1[index] <= _5PERSONAS[6][2]:
- tiempo_servicio = _5PERSONAS[6][0]
- elif numeros1[index] > _5PERSONAS[6][2] and numeros1[index] <= _5PERSONAS[7][2]:
- tiempo_servicio = _5PERSONAS[7][0]
- else:
- tiempo_servicio = _5PERSONAS[8][0]
- elif personas == '6':
- if numeros1[index] <= _6PERSONAS[0][2]:
- tiempo_servicio = _6PERSONAS[0][0]
- elif numeros1[index] > _6PERSONAS[0][2] and numeros1[index] <= _6PERSONAS[1][2]:
- tiempo_servicio = _6PERSONAS[1][0]
- elif numeros1[index] > _6PERSONAS[1][2] and numeros1[index] <= _6PERSONAS[2][2]:
- tiempo_servicio = _6PERSONAS[2][0]
- elif numeros1[index] > _6PERSONAS[2][2] and numeros1[index] <= _6PERSONAS[3][2]:
- tiempo_servicio = _6PERSONAS[3][0]
- elif numeros1[index] > _6PERSONAS[3][2] and numeros1[index] <= _6PERSONAS[4][2]:
- tiempo_servicio = _6PERSONAS[4][0]
- elif numeros1[index] > _6PERSONAS[4][2] and numeros1[index] <= _6PERSONAS[5][2]:
- tiempo_servicio = _6PERSONAS[5][0]
- elif numeros1[index] > _6PERSONAS[5][2] and numeros1[index] <= _6PERSONAS[6][2]:
- tiempo_servicio = _6PERSONAS[6][0]
- elif numeros1[index] > _6PERSONAS[6][2] and numeros1[index] <= _6PERSONAS[7][2]:
- tiempo_servicio = _6PERSONAS[7][0]
- else:
- tiempo_servicio = _6PERSONAS[8][0]
- return tiempo_servicio
- def imprime():
- """ Imprimer la tabla con los resultados """
- proceso()
- ex.widget.output.setHtml("|| R ------------------|| T. Llegadas || Llegada || Inicio servicio || R -----------------|| T. Servicio || Fin servicio || Ocio Personal || T. Espera || Cola ||")
- ex.widget.output.append("\n")
- for i in range(len(numeros)-1):
- ex.widget.output.append("|| " + str(numeros[i]) + " || "
- + "------" + str(tiempos_llegadas[i]) + "------" + " || "
- + hora_llegada[i].toString("hh:mm") + " || "
- + hora_inicio[i].toString("hh:mm") + " || "
- + str(numeros1[i]) + " || "
- + "------" + str(tiempo_servicio[i]) + "------" + " ||"
- + hora_fin[i].toString("hh:mm") + " || "
- + "------" + str(ocio_personal[i]) + "------" + " || "
- + "------" + str(tiempo_espera[i]) + "------" + " || "
- + "------" + str(cola[i]) + "-----" + " || \n")
- ex.widget.output.append('\nLa hora de la salida fue a las <b>' + salida_real.toString("hh:mm") + '</b>')
- ex.widget.output.append('\nLos trabajadores hicieron <b>' + str(horas_extra) + ' minutos</b> extra.')
- ex.widget.output.append('\nSu salario normal es <b>$' + str(pago) + '</b>.')
- ex.widget.output.append('\nSu salario extra es <b>$' + str(pago_extra) + '</b>.')
- ex.widget.output.append('\nSu salario total es <b>$' + str(pago_total) + '</b>.')
- ex.widget.output.append('\nEl costo por todos los empleados es de <b>$' + str(costo_empleados) + '</b>.')
- ex.widget.output.append('\nEl costo por tener esperando a los camiones fue de <b>$' + str(costo_espera) + '</b>.')
- ex.widget.output.append('\nEl costo del almacen fue de <b>$' + str(costo_almacen) + '</b>.')
- ex.widget.output.append('\nEl costo total fue de <b>$' + str(costo_total) + '</b> con <b>' + ex.widget.empleados_edit.text() + '</b> empleados.')
- def cuenta_en_cola(index):
- """ Cuenta cuantos camiones estan esperando """
- weones = []
- for i in range(len(hora_fin)-1):
- print "El len de hora_fin es " + str(len(hora_fin)-1)
- if hora_llegada[index+1].__lt__(hora_fin[i]):
- print "Si, la hora " + str(hora_llegada[index+1]) + "es menor a " + str(hora_fin[i])
- weones.append(1)
- else:
- "No, no es menor"
- cuantos = sum(weones)
- return cuantos
- def proceso():
- """ El proceso de la simulacion """
- global tiempos_llegadas
- global hora_llegada
- global hora_inicio
- global tiempo_servicio
- global hora_fin
- global ocio_personal
- global tiempo_espera
- global cola
- global comieron
- global cola_aux
- global atendido
- global numeros
- global numeros1
- global inicio
- global hora_salida
- numeros = get_x_numbers(20)
- numeros1 = get_x_numbers(20)
- inicio = random.uniform(0.5, 0.75)
- hora_salida = ex.widget.hora_salida_edit.time()
- tiempos_llegadas = []
- hora_llegada = []
- hora_inicio = []
- tiempo_servicio = []
- hora_fin = []
- ocio_personal = []
- tiempo_espera = []
- cola = []
- comieron = []
- cola_aux = []
- atendido = []
- camiones_iniciales = get_camiones()
- #First run
- if camiones_iniciales == 0:
- tiempos_llegadas.append(0)
- hora_llegada.append(0)
- hora_inicio.append(0)
- tiempo_servicio.append(0)
- hora_fin.append(0)
- ocio_personal.append(0)
- tiempo_espera.append(0)
- cola.append(0)
- comieron.append(False)
- atendido.append(True)
- else:
- tiempos_llegadas.append(0)
- hora_llegada.append(ex.widget.hora_entrada_edit.time()) # Revisar toString
- hora_inicio.append(ex.widget.hora_entrada_edit.time()) # Same
- tiempo_servicio.append(
- get_tiempo_servicio(0,ex.widget.empleados_edit.text()))
- hora_fin.append(
- ex.widget.hora_entrada_edit.time().addSecs(60 * tiempo_servicio[0]))
- ocio_personal.append(0)
- tiempo_espera.append(0)
- cola.append(camiones_iniciales)
- comieron.append(False)
- atendido.append(True)
- cola_aux = list(cola)
- print "Camiones iniciales son " + str(camiones_iniciales)
- #Segundo Run
- for index in range(len(numeros)-1):
- print "Len de numeros es " + str(len(numeros)-1)
- print "index es " + str(index)
- #sleep(0.1)
- #Tier 1
- #Tiempo entre llegadas
- tiempos_llegadas.append(get_tiempo_llegadas(index))
- print "el tiempo entre llegadas es de " + str(tiempos_llegadas[index+1])
- #sleep(0.1)
- #Tiempo de Servicio
- tiempo_servicio.append(get_tiempo_servicio(index, ex.widget.empleados_edit.text()))
- print "el tiempo de servicio es " + str(tiempo_servicio[index+1])
- #sleep(0.1)
- #Ya comieron?
- if comieron[index] is True:
- comieron.append(True)
- elif hora_fin[index].__ge__(hora_comida_inicia):
- comieron.append(True)
- else:
- comieron.append(False)
- #Tier 2
- #Hora de Llegada
- hora_llegada.append(hora_llegada[index].addSecs(60 * tiempos_llegadas[index+1]))
- print "la hora de llegada es " + str(hora_llegada[index+1])
- #sleep(0.1)
- #Fue atendido?
- if hora_llegada[index+1].__le__(hora_salida):
- #if hora_fin[index].__lt__(hora_salida):
- atendido.append(True)
- #else:
- # atendido.append(False)
- else:
- atendido.append(False)
- if atendido[index+1] is False:
- break
- #Tier 3
- #Hora de Inicio de Servicio
- if hora_fin[index].__lt__(hora_llegada[index+1]):
- if comieron[index+1] is True:
- if comieron[index] is False:
- hora_inicio.append(hora_llegada[index+1].addSecs(60 * 30))
- else:
- hora_inicio.append(hora_llegada[index+1])
- else:
- hora_inicio.append(hora_llegada[index+1])
- elif comieron[index+1] is True:
- if comieron[index] is False:
- hora_inicio.append(hora_fin[index].addSecs(60 * 30))
- else:
- hora_inicio.append(hora_fin[index])
- else:
- hora_inicio.append(hora_fin[index])
- print "Hora de inicio de servicio es " + str(hora_inicio[index+1])
- #Tier 4
- #Hora de Fin de Servicio
- hora_fin.append(hora_inicio[index+1].addSecs(
- 60 * tiempo_servicio[index+1]))
- print "la hora de fin de servicio es " + str(hora_fin[index+1])
- #sleep(0.1)
- #Tier 5
- #Tiempo de espera
- yeah = hora_llegada[index+1].secsTo(hora_inicio[index+1])
- print "yeah es " + str(yeah)
- if yeah < 0:
- yeah= (yeah + 86400) / 60
- else:
- yeah = yeah / 60
- tiempo_espera.append(yeah)
- print "El tiempo de espera es " + str(tiempo_espera[index+1])
- #sleep(0.1)
- #Tier 6
- #Cola
- cola_aux.append(cuenta_en_cola(index))
- print "Cola aux es " + str(cola_aux[index+1])
- cola.append(cola_aux[index+1])
- print "La cola es de " + str(cola[index+1])
- #Tier 7
- #Ocio del personal
- lulz = hora_fin[index].secsTo(hora_inicio[index+1])
- print "lulz es " + str(lulz)
- if lulz < 0:
- lulz = (lulz + 86400) / 60
- else:
- lulz = lulz / 60
- ocio_personal.append(lulz)
- print "El ocio es de " + str(ocio_personal[index+1])
- global salida_real
- global horas_extra
- global pago
- global pago_extra
- global pago_total
- global costo_empleados
- global costo_espera
- global costo_almacen
- global costo_total
- if hora_fin[len(hora_fin)-1].__gt__(hora_salida):
- salida_real = hora_fin[len(hora_fin)-1]
- else:
- salida_real = hora_salida
- if len(numeros) > len(tiempos_llegadas):
- while len(numeros) != len(tiempos_llegadas):
- tiempos_llegadas.append(0)
- if len(numeros) > len(hora_llegada):
- while len(numeros) != len(hora_llegada):
- hora_llegada.append(QtCore.QTime(0,0))
- if len(numeros) > len(hora_inicio):
- while len(numeros) != len(hora_inicio):
- hora_inicio.append(QtCore.QTime(0,0))
- if len(numeros) > len(tiempo_servicio):
- while len(numeros) != len(tiempo_servicio):
- tiempo_servicio.append(0)
- if len(numeros) > len(hora_fin):
- while len(numeros) != len(hora_fin):
- hora_fin.append(QtCore.QTime(0,0))
- if len(numeros) > len(ocio_personal):
- while len(numeros) != len(ocio_personal):
- ocio_personal.append(0)
- if len(numeros) > len(tiempo_espera):
- while len(numeros) != len(tiempo_espera):
- tiempo_espera.append(0)
- if len(numeros) > len(cola):
- while len(numeros) != len(cola):
- cola.append(0)
- """
- hora_fin.append(QtCore.QTime(0,0))
- hora_inicio.append(QtCore.QTime(0,0))
- tiempo_servicio.append(0)
- ocio_personal.append(0)
- tiempo_espera.append(0)
- cola.append(0) """
- print len(numeros)
- print len(tiempos_llegadas)
- print len(hora_llegada)
- print len(hora_inicio)
- print len(numeros1)
- print len(tiempo_servicio)
- print len(hora_fin)
- print len(ocio_personal)
- print len(tiempo_espera)
- print len(cola)
- print "El ultimo camion se descargo a las " + str(salida_real)
- horas_extra = hora_salida.secsTo(salida_real) / 60
- print "Los trabajadores jalaron extra %s minutos " % str(horas_extra)
- pago = float(ex.widget.salario_edit.text()) * 8
- print "Su salario normal es " + str(pago)
- pago_extra = float(ex.widget.hora_extra_edit.text()) * (float(horas_extra) / 60)
- print "Su salario extra es " + str(pago_extra)
- pago_total = pago + pago_extra
- print "Su pago total es " +str(pago_total)
- costo_empleados = pago_total * float(ex.widget.empleados_edit.text())
- print "Por todos los empleados el salario total es de " + str(costo_empleados)
- tiempo_total_espera = sum(tiempo_espera)
- costo_espera = float(tiempo_total_espera) * float(ex.widget.costo_espera_camion_edit.text()) / 60
- print "El costo total de tener esperando a los camiones fue de " + str(costo_espera)
- costo_almacen = float(ex.widget.costo_opera_bodega_edit.text()) * (float(ex.widget.hora_entrada.secsTo(salida_real)) / 3600)
- print "El costo del almacen fue de " + str(costo_almacen)
- costo_total = costo_empleados + costo_espera + costo_almacen
- print "El costo total con %s personas fue de %f" % (ex.widget.empleados_edit.text(), costo_total)
- print "------------- Fin de la corrida -----------------------"
- def main():
- app = QtGui.QApplication(sys.argv)
- global ex
- global hora_comida_inicia
- hora_comida_inicia = QtCore.QTime(15,0)
- ex = MainWindow()
- sys.exit(app.exec_())
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement