Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -8,28 +8,29 @@ st.title("Калькулятор Toyota📄")
|
|
8 |
|
9 |
st.markdown("Тут данные ввести")
|
10 |
|
11 |
-
Buying_an_autopilot = st.number_input('Покупка автопилота, руб.', value=
|
12 |
-
Purchase_of_peripheral_equipment = st.number_input('Покупка перефирийного оборудования, руб.'
|
13 |
-
Purchase_by = st.number_input('Покупка ПО, руб.'
|
14 |
-
Introduction_of_autopilot = st.number_input('Внедрение автопилота, руб.'
|
15 |
-
Maintenance = st.number_input('Обслуживание (месяц), руб.'
|
16 |
-
The_cost_of_repairing_one_car = st.number_input('Стоимость ремонта одной машины, руб.'
|
17 |
-
Inflation_rate = 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 |
|
34 |
|
35 |
def get_number_pallets_and_machines_employees():
|
@@ -40,22 +41,27 @@ def get_number_pallets_and_machines_employees():
|
|
40 |
return Number_pallets, Number_machines, Number_employees
|
41 |
|
42 |
|
43 |
-
def get_revenue():
|
44 |
-
|
|
|
|
|
45 |
|
46 |
return revenue
|
47 |
|
48 |
|
49 |
-
def get_costs():
|
|
|
|
|
|
|
50 |
Expected_repair_costs_per_month = Number_machines * Equipment_breakdown_rate * The_cost_of_repairing_one_car
|
51 |
-
Wage_Fund = Number_employees *
|
52 |
The_cost_of_insurance = Number_machines * Insurance_rate * (Buying_an_autopilot + Purchase_of_peripheral_equipment)
|
53 |
|
54 |
return Purchase_by + Number_machines * Maintenance + Expected_repair_costs_per_month + Wage_Fund + The_cost_of_insurance
|
55 |
|
56 |
|
57 |
-
def get_profit(amortization):
|
58 |
-
profit = get_revenue() - get_costs() - amortization
|
59 |
if profit > 0:
|
60 |
return profit
|
61 |
else:
|
@@ -91,7 +97,7 @@ def get_array_PV():
|
|
91 |
|
92 |
for idx in range(1, Number_of_months + 1, 1):
|
93 |
|
94 |
-
profit = get_profit(array_amortization[idx])
|
95 |
|
96 |
cur_PV = get_PV(profit, array_discounting[idx])
|
97 |
|
@@ -108,14 +114,14 @@ def get_array_NPV():
|
|
108 |
|
109 |
|
110 |
if st.button('Сюда кликнуть чтобы посчитать'):
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
|
116 |
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
|
121 |
-
|
|
|
8 |
|
9 |
st.markdown("Тут данные ввести")
|
10 |
|
11 |
+
Buying_an_autopilot = st.number_input('Покупка автопилота, руб.', value=0)
|
12 |
+
Purchase_of_peripheral_equipment = st.number_input('Покупка перефирийного оборудования, руб.')
|
13 |
+
Purchase_by = st.number_input('Покупка ПО, руб.')
|
14 |
+
Introduction_of_autopilot = st.number_input('Внедрение автопилота, руб.')
|
15 |
+
Maintenance = st.number_input('Обслуживание (месяц), руб.')
|
16 |
+
The_cost_of_repairing_one_car = st.number_input('Стоимость ремонта одной машины, руб.')
|
17 |
+
Inflation_rate = 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 |
+
Rate_CPI = 1.1
|
34 |
|
35 |
|
36 |
def get_number_pallets_and_machines_employees():
|
|
|
41 |
return Number_pallets, Number_machines, Number_employees
|
42 |
|
43 |
|
44 |
+
def get_revenue(idx):
|
45 |
+
indexation = math.floor(idx / 12)
|
46 |
+
Price = Price_for_processing_ont_pallet * math.pow(Rate_CPI, indexation)
|
47 |
+
revenue = Number_machines * Number_pallets * Price
|
48 |
|
49 |
return revenue
|
50 |
|
51 |
|
52 |
+
def get_costs(idx):
|
53 |
+
indexation = math.floor(idx / 12)
|
54 |
+
wage_fund_with_indexation = math.pow((Social_benefits_for_one_employee + Monthly_salary_rate), indexation)
|
55 |
+
|
56 |
Expected_repair_costs_per_month = Number_machines * Equipment_breakdown_rate * The_cost_of_repairing_one_car
|
57 |
+
Wage_Fund = Number_employees * wage_fund_with_indexation
|
58 |
The_cost_of_insurance = Number_machines * Insurance_rate * (Buying_an_autopilot + Purchase_of_peripheral_equipment)
|
59 |
|
60 |
return Purchase_by + Number_machines * Maintenance + Expected_repair_costs_per_month + Wage_Fund + The_cost_of_insurance
|
61 |
|
62 |
|
63 |
+
def get_profit(amortization, idx):
|
64 |
+
profit = get_revenue(idx) - get_costs(idx) - amortization
|
65 |
if profit > 0:
|
66 |
return profit
|
67 |
else:
|
|
|
97 |
|
98 |
for idx in range(1, Number_of_months + 1, 1):
|
99 |
|
100 |
+
profit = get_profit(array_amortization[idx], idx)
|
101 |
|
102 |
cur_PV = get_PV(profit, array_discounting[idx])
|
103 |
|
|
|
114 |
|
115 |
|
116 |
if st.button('Сюда кликнуть чтобы посчитать'):
|
117 |
+
Number_pallets, Number_machines, Number_employees = get_number_pallets_and_machines_employees()
|
118 |
+
array_PV = get_array_PV()
|
119 |
+
array_NPV = get_array_NPV()
|
120 |
+
st.write('Тут всё показываем')
|
121 |
|
122 |
|
123 |
+
chart_data = pd.DataFrame(columns=['PV', 'NPV'])
|
124 |
+
chart_data['PV'] = array_PV
|
125 |
+
chart_data['NPV'] = array_NPV
|
126 |
|
127 |
+
st.area_chart(chart_data)
|