SHARE
TWEET

Untitled

iFabio Jul 7th, 2017 147 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Lista = [] #<----- Array
  2.  
  3.  
  4. Mess = ['enero', 'febrero', 'marzo', 'abril','mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre',
  5.         'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre',
  6.         'ENERO', 'FEBRERO', 'MARZO', 'ABRIL', 'MAYO', 'JUNIO', 'JULIO', 'AGOSTO', 'SEPTIEMBRE', 'OCTUBRE', 'NOVIEMBRE', 'DICIEMBRE']
  7.  
  8. Rank =  ['novato', 'experto', 'supervisor', 'administrativo',
  9.          'Novato', 'Experto', 'Supervisor', 'Administrativo',
  10.          'NOVATO', 'EXPERTO', 'SUPERVISOR', 'ADMINISTRATIVO']
  11.  
  12. SistemaSalud = ['a', 'b', 'c',
  13.                 'A', 'B', 'C']
  14.  
  15.  
  16.  
  17. class Trabajador: #Class <----
  18.     Mes = ''
  19.     Año = 0
  20.     Rut = ''
  21.     Nombre = ''
  22.     Categoria = ''
  23.     DiasOff = 0
  24.     AFP = ''
  25.     SSalud = ''
  26.     SueldoBruto = 0
  27.     SueldoDescontado = 0
  28.  
  29. def Ingresar_Datos():
  30.     Elementos = int(input('Ingrese cantidad de trabajadores que desea agregar: \n')) #<--- How many people do you want to add
  31.     for Trabajadores in range(Elementos):
  32.         dato = Trabajador()
  33.        
  34.         while True:
  35.             Nombre = input("Ingrese un nombre: ") #<--- Name
  36.             if vacio(Nombre):
  37.                 print ('No puede dejar el campo vacio')
  38.             else:
  39.                 dato.Nombre = Nombre
  40.                 break
  41.            
  42.         while True:
  43.             Rut = input('Ingrese Rut: ') # <---- ID Number
  44.             if vacio(Rut):
  45.                 print ('No puede dejar el campo vacio')
  46.             else:
  47.                 dato.Rut = Rut
  48.                 break
  49.            
  50.         while True:
  51.             Mes = input('Ingrese mes: ') # <---- Month when start at work
  52.             if vacio(Mes):
  53.                 print ('No puede dejar el campo vacio')
  54.             elif Mes in Mess:
  55.                 dato.Mes = Mes
  56.                 break
  57.             else:
  58.                 print('Mes invalido')
  59.                
  60.            
  61.         while True:
  62.             Año = input('Ingrese año: ') # <---- Year when start at work
  63.             if vacio(Año):
  64.                 print ('No puede dejar el campo vacio')
  65.             else:
  66.                 dato.Año = Año
  67.                 break
  68.            
  69.         while True:
  70.             AFP = input('Ingrese AFP: ') # <---- NVM just a company name can be put here, not relevant
  71.             if vacio(AFP):
  72.                 print ('No puede dejar el campo vacio')
  73.             else:
  74.                 dato.AFP = AFP
  75.                 break
  76.            
  77.         while True:
  78.             SSalud = input('Sistema de salud A B o C\nDigite opcion: ') # <---- System Health, Here is A, B or C, This make a discount%
  79.             if vacio(SSalud):
  80.                 print ('No puede dejar el campo vacio')
  81.             elif SSalud in SistemaSalud:
  82.                 dato.SSalud = SSalud
  83.                 break
  84.             else:
  85.                 print ('::::::::::::::::::::ERROR Opcion Invalida::::::::::::::::::::')
  86.                
  87.            
  88.         while True:
  89.             Categoria = input('Categoria; Novato, Supervisor, Experto o Administrativo: ') # <---- Worker rank, Expert have a 2xBonus for 0 days off
  90.             if vacio(Categoria):
  91.                 print ('No puede dejar el campo vacio')
  92.             elif Categoria in Rank:
  93.                 dato.Categoria = Categoria
  94.                 break
  95.             else:
  96.                 print ('::::::::::::::::::::ERROR Categoria invalida::::::::::::::::::::')
  97.                
  98.            
  99.         while True:
  100.                 DiasOff = input('Ingrese cantidad de dias de ausencia: ') #<------ Days of absence, 0 days have a bonus$
  101.                 if dato.DiasOff < 0 or dato.DiasOff > 30:
  102.                     print ('Dias de ausencia no puede ser negativo o mayor a 30')
  103.                 else:
  104.                     dato.DiasOff = DiasOff
  105.                     break
  106.                
  107.                
  108.         while True:
  109.             try:
  110.                 SueldoBruto = int(input('Ingrese sueldo bruto: ')) # <------- Gross Salary
  111.                 if dato.SueldoBruto < 0:
  112.                     print ('El monto del sueldo bruto no puede ser negativo')
  113.                 else:
  114.                     dato.SueldoBruto = SueldoBruto
  115.                     break
  116.             except ValueError:
  117.                 print('error')
  118.                
  119.         print("------------------------------------------------")
  120.         Lista.append(dato)
  121.  
  122.  
  123. def vacio(x):
  124.     if x and x.strip():
  125.         return False
  126.     return True
  127.  
  128.  
  129. def Calcular_Sueldo():
  130.     Bono = 50000 #<-------- Bonus for 0 Days of absence
  131.     for Trabajadores in Lista:
  132.         print('Nombre trabajador: ',Trabajadores.Nombre,'\n')
  133.        
  134.         if Trabajadores.DiasOff == '0' and Trabajadores.Categoria == ('experto') or Trabajadores.DiasOff == '0' and Trabajadores.Categoria == ('Experto') or Trabajadores.DiasOff == '0' and Trabajadores.Categoria == ('EXPERTO'):
  135.             SueldoBono = Trabajadores.SueldoBruto + Bono*2 #<-------- There is if 0 days absence and rank experto, 2xBonus
  136.             print('Sueldo bruto + Bono (Experto) por 0 faltas: ',SueldoBono)
  137.  
  138.                
  139.         elif Trabajadores.DiasOff == '0': #<-------- Bonus for 0 Days of absence, nvm about rank here
  140.             SueldoBono = Trabajadores.SueldoBruto + Bono
  141.             print('Sueldo bruto + Bono por 0 faltas: ',SueldoBono)
  142.            
  143.                
  144.         else:
  145.             SueldoBono = Trabajadores.SueldoBruto #<-------- No bonus for days absence
  146.             print('Tiene faltas/ausencia, no tiene derecho a Bono: ',SueldoBono)
  147.        
  148.  
  149.         DctoAFP = SueldoBono - (SueldoBono * 0.1) #<-------- This makes a 10% descuento for AFP, the nvm'company name
  150.         print('Sueldo bruto + Recorte del 10% por AFP ',Trabajadores.AFP,': ',DctoAFP)
  151.        
  152.        
  153.        
  154.         if Trabajadores.SSalud == 'a' or Trabajadores.SSalud == 'A': #<-------- If Sistem Health is A, make a 5,7% discount
  155.             DctoSalud = (DctoAFP/100) * 5.7
  156.             print('Recorte del sistema de salud A: ',DctoSalud)
  157.             SueldoDescontado = DctoAFP - DctoSalud #<-------------------------- This Variable --------- !"#$"!#%!"#%!#"%"#$%$"#----------
  158.             print('Total a pagar: ',SueldoDescontado)
  159.        
  160.            
  161.            
  162.        
  163.            
  164.         if Trabajadores.SSalud == 'b' or Trabajadores.SSalud == 'B': #<-------- If Sistem Health is B, make a 6.1% discount
  165.             DctoSalud = (DctoAFP/100) * 6.1
  166.             print('Recorte del sistema de salud B: ',DctoSalud)
  167.             SueldoDescontado = DctoAFP - DctoSalud #<-------------------------- This Variable --------- !"#$"!#%!"#%!#"%"#$%$"#----------
  168.             print('Total a pagar: ',SueldoDescontado)
  169.        
  170.            
  171.            
  172.    
  173.            
  174.         if Trabajadores.SSalud == 'c' or Trabajadores.SSalud == 'C': #<-------- If Sistem Health is C, make a 6.5% discount
  175.             DctoSalud = (DctoAFP/100) * 6.5
  176.             print('Recorte del sistema de salud C: ',DctoSalud)
  177.             SueldoDescontado = DctoAFP - DctoSalud #<-------------------------- This Variable --------- !"#$"!#%!"#%!#"%"#$%$"#----------
  178.             print('Total a pagar: ',SueldoDescontado)
  179.            
  180.                
  181.  
  182.            
  183.     print('--------------------------------------')
  184.  
  185. def Liquidaciones_Rut(): #<------- Here i need to print all the ID's number's with his Final Salary (SueldoDescontado)
  186.     for Trabajadores in Lista:
  187.         print('Rut: ',Trabajadores.Rut,'Total a pagar: $',SueldoDescontado) #<----- To here --------- !"#$"!#%!"#%!#"%"#$%$"#----------
  188.        
  189.  
  190.        
  191.            
  192. def Listar_Empleados(): #<------------------ Here just print the names of all workers
  193.     for Trabajadores in Lista:
  194.         print("Empleados registrados: ", Trabajadores.Nombre)
  195.  
  196.  
  197.  
  198.  
  199.        
  200.                
  201. opcion = 7
  202. while (opcion != 6):
  203.     print(' ========== Administracion NovaVision ========== ')
  204.     print('Menu')
  205.     print('1.- Ingresar Datos') #<-------------------------- Enter Data
  206.     print('2.- Calcular Sueldo') #<-------------------------- Calculate Salary
  207.     print('3.- Listar Empleados') #<----------------------------- List employees (by his name)
  208.     print('4.- Mostrar Liquidaciones por RUT') # <--------- List numbers ID with his Respective Salary
  209.     print('5.- Salir')
  210.     opcion = int(input('Ingrese su opcion: '))
  211.     if (opcion == 1):
  212.         Ingresar_Datos()
  213.     elif (opcion == 2):
  214.         Calcular_Sueldo()
  215.     elif (opcion == 3):
  216.        Listar_Empleados()
  217.     elif (opcion == 4):
  218.         Liquidaciones_Rut()
  219.     elif (opcion == 5):
  220.         print('Saliendo .. ')
  221.     else:
  222.         print ('Opcion no valida')
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top