iFabio

Untitled

Jul 7th, 2017
728
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.64 KB | None | 0 0
  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')
Advertisement
Add Comment
Please, Sign In to add comment