TovaHasi commited on
Commit
6c915d6
1 Parent(s): 03c98c9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +67 -41
app.py CHANGED
@@ -1,10 +1,3 @@
1
- import streamlit as st
2
- import matplotlib.pyplot as plt
3
- import numpy as np
4
- import pandas as pd
5
- import math
6
- import numpy_financial as npf
7
-
8
  import streamlit as st
9
  import matplotlib.pyplot as plt
10
  import numpy as np
@@ -16,27 +9,27 @@ st.title("Калькулятор Toyota📄")
16
  genre = st.radio("Какой из вариантов", ("Покупка автоматизированного ричтрака", "Аренда автоматизированного ричтрака", "Покупка механизированного ричтрака"))
17
 
18
  if genre == 'Покупка автоматизированного ричтрака':
19
- Buying_an_autopilot = st.number_input('Покупка автопилота, руб.', value=2000000)
20
- Purchase_of_peripheral_equipment = st.number_input('Покупка перефирийного оборудования, руб.', value=40000)
21
- Purchase_by = st.number_input('Покупка ПО, руб.', value=10000)
22
- Introduction_of_autopilot = st.number_input('Внедрение автопилота, руб.', value=20000)
23
- Maintenance = st.number_input('Обслуживание (месяц), руб.', value=100000)
24
- The_cost_of_repairing_one_car = st.number_input('Стоимость ремонта одной машины, руб.', value=10000)
25
- Inflation_rate = st.number_input('Уровень инфляции', value=0.04)
26
- Monthly_salary_rate = st.number_input('Заработная ставка, руб. в месяц', value=40000)
27
- Number_of_months = st.number_input('Количество месяцев', value=12)
28
- Equipment_breakdown_rate = st.number_input('Коэффициент поломки оборудования', value=0.1)
29
- Price_for_processing_ont_pallet = st.number_input('Цена за обработку 1 паллета, руб.', value=300)
30
- Cargo_flow = st.number_input('Грузопоток, шт/месяц', value=10000)
31
- Efficiency = st.number_input('Производительность, шт в час', value=5)
32
- Number_of_working_hours = st.number_input('Количество рабочих часов', value=8)
33
- Shift_of_one_employee = st.number_input('Смена 1 работника, ч.', value=8)
34
- Number_of_working_days_month = st.number_input('Количество рабочих дней в месяц, дн.', value=20)
35
- Social_benefits_for_one_employee = st.number_input('Социальные выплаты 1 сотруднику, руб.', value=10000)
36
- Insurance_rate = st.number_input('Ставка страхования', value=0.005)
37
- Income_tax_rate = st.number_input('Ставка налога на прибыль', value=0.2)
38
- Number_of_autopilots_serviced_by_one_employee = st.number_input('Количество автопилотов, обслуживаемых 1 работником', value=10)
39
- discounting = st.number_input('Ставка дисконтирования в месяц', value=0.028)
40
  elif genre == 'Аренда автома��изированного ричтрака':
41
  Rent_an_autopilot = st.number_input('Аренда автопилота, руб.', value = 20000)
42
  Rent_of_peripheral_equipment = st.number_input('Аренда перефирийного оборудования, руб.', value = 4000)
@@ -57,6 +50,7 @@ elif genre == 'Аренда автоматизированного ричтра
57
  Income_tax_rate = st.number_input('Ставка налога на прибыль', value = 0.2)
58
  Number_of_autopilots_serviced_by_one_employee = st.number_input('Количество автопилотов, обслуживаемых одним работником, шт.', value = 10)
59
  discounting = st.number_input('Ставка дисконтирования в месяц', value = 0.028)
 
60
  else:
61
  Buying_a_richtruck = st.number_input('Покупка ричтрака, руб.', value=2000000)
62
  Maintenance = st.number_input('Обслуживание (месяц), руб.', value=10000)
@@ -72,20 +66,25 @@ else:
72
  Number_of_working_days_month = st.number_input('Количество рабочих дней в месяц, дн.', value=20)
73
  Social_benefits_for_one_employee = st.number_input('Социальные выплаты 1 сотруднику, руб.', value=10000)
74
  Insurance_rate = st.number_input('Ставка страхования', value=0.005)
75
- The_cost_of_demaged_goods = st.number_input('Стоимость поврежденного товара', value=1000)
76
- Product_damage_rate= st.number_input('Коэфициент повреждения товара', value=0.005)
77
  discounting = st.number_input('Ставка дисконтирования в месяц', value=0.028)
78
 
79
 
80
-
81
- Rate_CPI = 1.1
82
 
83
 
84
  def get_number_pallets_and_machines_employees():
85
  Number_pallets = Efficiency * Number_of_working_hours * Number_of_working_days_month
86
  Number_machines = math.ceil(Cargo_flow / Number_pallets)
87
- Number_employees = math.ceil((Number_machines * Number_of_working_hours / Shift_of_one_employee) / Number_of_autopilots_serviced_by_one_employee)
88
 
 
 
 
 
 
 
 
89
  return Number_pallets, Number_machines, Number_employees
90
 
91
 
@@ -99,14 +98,32 @@ def get_revenue(idx):
99
 
100
  def get_costs(idx):
101
  indexation = math.floor(idx / 12)
 
102
  wage_fund_with_indexation = math.pow((Social_benefits_for_one_employee + Monthly_salary_rate), indexation)
103
 
104
- Expected_repair_costs_per_month = Number_machines * Equipment_breakdown_rate * The_cost_of_repairing_one_car
105
- Wage_Fund = Number_employees * wage_fund_with_indexation
106
- The_cost_of_insurance = Number_machines * Insurance_rate * (Buying_an_autopilot + Purchase_of_peripheral_equipment)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
 
108
- return Purchase_by + Number_machines * Maintenance + Expected_repair_costs_per_month + Wage_Fund + The_cost_of_insurance
109
-
110
 
111
  def get_profit(amortization, idx):
112
  profit = get_revenue(idx) - get_costs(idx) - amortization
@@ -136,10 +153,18 @@ def get_amortization(value):
136
 
137
 
138
  def get_array_CF_PV():
139
- I_0 = Buying_an_autopilot * Number_machines + Purchase_of_peripheral_equipment + Introduction_of_autopilot
140
-
 
 
 
 
 
 
 
 
141
  array_discounting = get_array_discounting()
142
- array_amortization = get_amortization(I_0)
143
 
144
  array_PV = [-I_0]
145
  array_CF = [-I_0]
@@ -179,3 +204,4 @@ if st.button('Сюда кликнуть чтобы посчитать'):
179
  chart_data['NPV'] = array_NPV
180
 
181
  st.line_chart(chart_data)
 
 
 
 
 
 
 
 
 
1
  import streamlit as st
2
  import matplotlib.pyplot as plt
3
  import numpy as np
 
9
  genre = st.radio("Какой из вариантов", ("Покупка автоматизированного ричтрака", "Аренда автоматизированного ричтрака", "Покупка механизированного ричтрака"))
10
 
11
  if genre == 'Покупка автоматизированного ричтрака':
12
+ Buying_an_autopilot = st.number_input('Покупка автопилота, руб.', value=0)
13
+ Purchase_of_peripheral_equipment = st.number_input('Покупка перефирийного оборудования, руб.')
14
+ Purchase_by = st.number_input('Покупка ПО, руб.')
15
+ Introduction_of_autopilot = st.number_input('Внедрение автопилота, руб.')
16
+ Maintenance = st.number_input('Обслуживание (месяц), руб.')
17
+ The_cost_of_repairing_one_car = st.number_input('Стоимость ремонта одной машины, руб.')
18
+ Monthly_salary_rate = st.number_input('Заработная ставка, руб. в месяц')
19
+ Number_of_months = st.number_input('Количество месяцев')
20
+ Equipment_breakdown_rate = st.number_input('Коэфициент поломки оборудования ')
21
+ Price_for_processing_ont_pallet = st.number_input('Цена за обработку 1 паллета, руб.')
22
+ Cargo_flow = st.number_input('Грузопоток, шт/месяц ')
23
+ Efficiency = st.number_input('Производительность, шт в час')
24
+ Number_of_working_hours = st.number_input('Количество рабочих часов')
25
+ Shift_of_one_employee = st.number_input('Смена 1 работника, ч.')
26
+ Number_of_working_days_month = st.number_input('Количество рабочих дней в месяц, дн.')
27
+ Social_benefits_for_one_employee = st.number_input('Социальные выплаты 1 сотруднику, руб.')
28
+ Insurance_rate = st.number_input('Ставка страхования')
29
+ Income_tax_rate = st.number_input('Ставка налога на прибыль')
30
+ Number_of_autopilots_serviced_by_one_employee = st.number_input('Количество автопилотов, обслуживаемых 1 работником')
31
+ discounting = st.number_input('Ставка дисконтирования в месяц')
32
+
33
  elif genre == 'Аренда автома��изированного ричтрака':
34
  Rent_an_autopilot = st.number_input('Аренда автопилота, руб.', value = 20000)
35
  Rent_of_peripheral_equipment = st.number_input('Аренда перефирийного оборудования, руб.', value = 4000)
 
50
  Income_tax_rate = st.number_input('Ставка налога на прибыль', value = 0.2)
51
  Number_of_autopilots_serviced_by_one_employee = st.number_input('Количество автопилотов, обслуживаемых одним работником, шт.', value = 10)
52
  discounting = st.number_input('Ставка дисконтирования в месяц', value = 0.028)
53
+
54
  else:
55
  Buying_a_richtruck = st.number_input('Покупка ричтрака, руб.', value=2000000)
56
  Maintenance = st.number_input('Обслуживание (месяц), руб.', value=10000)
 
66
  Number_of_working_days_month = st.number_input('Количество рабочих дней в месяц, дн.', value=20)
67
  Social_benefits_for_one_employee = st.number_input('Социальные выплаты 1 сотруднику, руб.', value=10000)
68
  Insurance_rate = st.number_input('Ставка страхования', value=0.005)
69
+ The_cost_of_demaged_goods = ('Стоимость поврежденного товара', value=1000)
70
+ Product_damage_rate= ('Коэфициент повреждения товара', value=0.005)
71
  discounting = st.number_input('Ставка дисконтирования в месяц', value=0.028)
72
 
73
 
74
+ Rate_CPI = 1.05
 
75
 
76
 
77
  def get_number_pallets_and_machines_employees():
78
  Number_pallets = Efficiency * Number_of_working_hours * Number_of_working_days_month
79
  Number_machines = math.ceil(Cargo_flow / Number_pallets)
 
80
 
81
+ if genre == 'Покупка автоматизированного ричтрака':
82
+ Number_employees = math.ceil((Number_machines * Number_of_working_hours / Shift_of_one_employee) / Number_of_autopilots_serviced_by_one_employee)
83
+ elif genre == 'Аренда автоматизированного ричтрака':
84
+ Number_employees = math.ceil((Number_machines * Number_of_working_hours / Shift_of_one_employee) / Number_of_autopilots_serviced_by_one_employee)
85
+ else:
86
+ Number_employees = math.ceil((Number_machines * Number_of_working_hours / Shift_of_one_employee))
87
+
88
  return Number_pallets, Number_machines, Number_employees
89
 
90
 
 
98
 
99
  def get_costs(idx):
100
  indexation = math.floor(idx / 12)
101
+
102
  wage_fund_with_indexation = math.pow((Social_benefits_for_one_employee + Monthly_salary_rate), indexation)
103
 
104
+ if genre == 'Покупка автоматизированного ричтрака':
105
+ Expected_repair_costs_per_month = Number_machines * Equipment_breakdown_rate * The_cost_of_repairing_one_car
106
+ Wage_Fund = Number_employees * wage_fund_with_indexation
107
+ The_cost_of_insurance = Number_machines * Insurance_rate * (Buying_an_autopilot + Purchase_of_peripheral_equipment)
108
+
109
+ cost = Purchase_by + Number_machines * Maintenance + Expected_repair_costs_per_month + Wage_Fund + The_cost_of_insurance
110
+
111
+ elif genre == 'Аренда автоматизированного ричтрака':
112
+ Expected_repair_costs_per_month = Number_machines * Equipment_breakdown_rate * The_cost_of_repairing_one_car
113
+ Wage_Fund = Number_employees * wage_fund_with_indexation
114
+ Autopilot_rental = Number_machines * Rent_an_autopilot
115
+
116
+ cost = Autopilot_rental + Rent_of_peripheral_equipment + Purchase_by + Number_machines * Maintenance + Wage_Fund + Expected_repair_costs_per_month
117
+
118
+ else:
119
+ Expected_repair_costs_per_month = Number_machines * Equipment_breakdown_rate * The_cost_of_repairing_one_car
120
+ Wage_Fund = Number_employees * wage_fund_with_indexation
121
+ The_cost_of_insurance = Number_machines * Insurance_rate * Buying_a_richtruck
122
+ Expected_costs_for_the_purchase_of_damaged_goods = Efficiency * The_cost_of_demaged_goods * Product_damage_rate
123
+
124
+ cost = Number_machines * Maintenance + Expected_repair_costs_per_month + Wage_Fund + The_cost_of_insurance + Expected_costs_for_the_purchase_of_damaged_goods
125
 
126
+ return cost
 
127
 
128
  def get_profit(amortization, idx):
129
  profit = get_revenue(idx) - get_costs(idx) - amortization
 
153
 
154
 
155
  def get_array_CF_PV():
156
+ if genre == 'Покупка автоматизированного ричтрака':
157
+ I_0 = Buying_an_autopilot * Number_machines + Purchase_of_peripheral_equipment + Introduction_of_autopilot * Number_machines
158
+ amortizat = Buying_an_autopilot * Number_machines + Introduction_of_autopilot * Number_machines
159
+ elif genre == 'Аренда автоматизированного ричтрака':
160
+ I_0 = Rent_of_peripheral_equipment
161
+ amortizat = 0
162
+ else:
163
+ I_0 = Buying_a_richtruck * Number_machines
164
+ amortizat = Buying_a_richtruck * Number_machines
165
+
166
  array_discounting = get_array_discounting()
167
+ rray_amortization = get_amortization(amortizat)
168
 
169
  array_PV = [-I_0]
170
  array_CF = [-I_0]
 
204
  chart_data['NPV'] = array_NPV
205
 
206
  st.line_chart(chart_data)
207
+