Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. import Vara as sak
  2.  
  3. VARULISTA = "Varulista"
  4.  
  5.  
  6. def load_information():
  7. saker = []
  8.  
  9. with open(VARULISTA, "r", encoding="utf-8") as file:
  10. tmp_saker = file.readlines()
  11. file.close()
  12.  
  13. for föremål in tmp_saker:
  14. saker.append(sak.föremål(*föremål.split(",")))
  15.  
  16. return saker
  17.  
  18.  
  19. def scanna_vara(saker):
  20. varor = []
  21.  
  22. lager_saldo = {}
  23.  
  24. for x in saker:
  25. lager_saldo.update({x.kod: x.lager})
  26.  
  27. print(lager_saldo)
  28. while True:
  29.  
  30. varu_kod, *antal = input("Skriv in Vara: ").split(" ")
  31. if len(antal) == 0:
  32. antal = 1
  33. elif len(antal) > 1:
  34. print("NU blev det fel!")
  35. continue
  36. try:
  37. if type(antal) is list:
  38. antal = int(antal[0])
  39. except ValueError:
  40. print("Det blev knasigt")
  41. continue
  42.  
  43. if varu_kod == "#":
  44. break
  45. elif varu_kod in lager_saldo:
  46. for y in saker:
  47. if varu_kod == y.kod:
  48. if y.kontroll(antal) >= 0:
  49. ny_vara = y # Kopiera obj iställt för att overwrita
  50. if ny_vara in varor:
  51. ny_vara.antal += antal
  52. else:
  53. ny_vara.antal = antal
  54. varor.append(ny_vara)
  55. else:
  56. print("det finns inte tillräcklig i lagret")
  57. else:
  58. print("Varan finns inte")
  59.  
  60. return varor
  61.  
  62. def uppdatra_lager(saker,):
  63.  
  64. for x in saker:
  65. setattr(x, "lager", getattr(x, "lager") - x.antal)
  66.  
  67. with open(VARULISTA, "w", encoding="utf-8") as file:
  68. for y in saker:
  69. file.write(",".join(map(str, [y.namn, y.pris, y.kod, y.lager])) + "\n")
  70. file.close()
  71.  
  72. def skapa_kvitto(scannade):
  73. tot_pris = 0
  74. tot_ant = 0
  75. print(f"Varunamn \t\t A-Pris \t Antal \t\t Summa")
  76. print("------------------------------------------------")
  77. for x in scannade:
  78. tot_pris += x.get_summa()
  79. tot_ant += x.antal
  80. print(x)
  81. print("================================================")
  82. print(f"TOTAL \t\t\t\t\t\t {tot_ant} \t\t\t {tot_pris:.2f}")
  83.  
  84.  
  85. def main():
  86. saker = load_information()
  87. scannade_saker = scanna_vara(saker)
  88. skapa_kvitto(scannade_saker)
  89. uppdatra_lager(saker)
  90.  
  91.  
  92. main()
  93.  
  94. ---------------------------------------------------------------------------------------------------------------------------------------
  95.  
  96. class föremål:
  97.  
  98. def __init__(self, namn, pris, kod, lager, antal=0):
  99. self.namn = namn
  100. self.pris = float(pris)
  101. self.kod = kod
  102. self.antal = int(antal)
  103. self.lager = int(lager)
  104.  
  105. def kontroll(self, inmating):
  106. return self.lager - (int(inmating) + self.antal)
  107.  
  108. def get_summa(self):
  109. summa = int(self.antal*self.pris)
  110.  
  111. return summa
  112.  
  113. def __str__(self):
  114. return f"{self.namn} \t\t\t {self.pris:.2f} \t\t {self.antal} \t\t\t {self.antal*self.pris:.2f}"
  115.  
  116. ---------------------------------------------------------------------------------------------------------------------------------------
  117.  
  118. Chips,20.0,12572,56
  119. Läsk,13.0,12421,12
  120. Kondomer,10.5,6969,88
  121. Stark-Öl,5.0,1336,0
  122. Weed,100.0,420,15
  123. Kox 1g,800.0,1337,9900
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement