Spaces:
Runtime error
Runtime error
Update app.py
Browse files
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=
|
20 |
-
Purchase_of_peripheral_equipment = st.number_input('Покупка перефирийного оборудования, руб.'
|
21 |
-
Purchase_by = st.number_input('Покупка ПО, руб.'
|
22 |
-
Introduction_of_autopilot = st.number_input('Внедрение автопилота, руб.'
|
23 |
-
Maintenance = st.number_input('Обслуживание (месяц), руб.'
|
24 |
-
The_cost_of_repairing_one_car = st.number_input('Стоимость ремонта одной машины, руб.'
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
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 =
|
76 |
-
Product_damage_rate=
|
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 |
-
|
105 |
-
|
106 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
|
108 |
-
return
|
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 |
-
|
140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
array_discounting = get_array_discounting()
|
142 |
-
|
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 |
+
|