Spaces:
Runtime error
Runtime error
File size: 7,863 Bytes
c73a3e0 f2b92ef b9483ac e6f15f9 b9483ac 11ba886 f2b92ef ee6bd21 33c70f3 b898d29 33c70f3 b898d29 670c918 9e5b779 b898d29 9e5b779 b898d29 97985f2 fa1e2d7 b898d29 9e5b779 2d95666 7c11ab5 b898d29 ae91796 352d214 b898d29 352d214 b898d29 d2d03d4 eddefd4 b898d29 2d95666 9c24e16 fa52ef2 da59596 fa52ef2 fa1e2d7 6634da1 b898d29 19e516e b898d29 2d95666 6634da1 ddcfc25 cafc16c fa52ef2 d2d03d4 f6f3045 fa52ef2 d2d03d4 fa52ef2 ddcfc25 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
import streamlit as st
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import math
st.set_page_config(
page_title="Ex-stream-ly Cool App",
page_icon="🧊",
layout="wide",
initial_sidebar_state="expanded"
)
st.title("Калькулятор Toyota 📦")
st.subheader('Toyota Material Handling')
st.write("""
тут информация про калькулятор
""")
Number_of_incoming_pallets = st.number_input('Количество поступаемых паллет, паллет/месяц', value=40)
Number_of_pallets_shipped = st.number_input('Количество отгружаемых паллет, паллет/месяц', value=40)
The_average_cost_of_one_product = st.number_input('Средняя стоимость одного товара, руб.', value=3000)
col1, col2 = st.columns(2)
with col1:
st.write('Характеристики insource склада')
The_cost_of_warehouse_maintenance_services = st.number_input('Стоимость услуг по обеспечению склада, руб./месяц', value=50000)
Average_salary = st.number_input('Средняя зарпала, сотрудник', value=50850)
Equipment_breakdown_rate_in_stock = st.number_input('Коэффициент поломки оборудования на складе, %', value=5)
The_cost_of_equipment_repair_in_the_warehouse = st.number_input('Стоимость ремонта оборудования на складе, руб./шт.', value=20000)
The_cost_of_warehouse_information_support = st.number_input('Стоимость информационной поддержки склада, руб./месяц', value=20000)
Spoilage_coefficient = st.number_input('Коэффициент порчи, %', value=0.1)
Number_of_working_hours_per_month = st.number_input('Количество рабочих часов в месяц, час', value=176)
Average_number_of_goods_per_pallet = st.number_input('Среднее количество товаров в одном паллете, шт./палелт', value=120)
Productivity_of_one_employee = st.number_input('Производительность одного сотрудника, паллетомест/час', value=0.2)
with col2:
st.write('Характеристики outsource склада')
Number_of_storage_days = st.number_input('Количество дней хранения, дни', value=30)
Warehouse_area = st.number_input('Площадь склада, м2', value=150)
Storage_mezzanine = st.number_input('Стоимость хранения мезонина, руб. за м2/сутки', value=22.35)
Unloading_of_pallets_to_the_storage_place = st.number_input('Стоимость выгрузки паллет на место хранения, руб./паллета', value=120)
Acceptance = st.number_input('Стоимость приемки, руб./паллет', value=125.9)
Selection_of_spare_parts = st.number_input('Стоимость подбор запчастей, руб./паллет', value=183)
Shipment_of_spare_parts = st.number_input('Стоимость отгрузки запчастей, руб./паллет', value=120)
Registration_of_documents_entry_or_exit = st.number_input('Стоимость оформление документов вход/выход, руб./комплект', value=130)
Transaction_percentage = st.number_input('Процент транзакции, %', value=1)
def get_average_number_of_damaged_goods():
return (Number_of_incoming_pallets + Number_of_pallets_shipped) * Spoilage_coefficient * Average_number_of_goods_per_pallet / 100
def get_cnt_emplyes_and_equipment():
The_number_of_pallets_processed_by_one_employee = Productivity_of_one_employee * Number_of_working_hours_per_month
Number_of_employees = math.ceil((Number_of_incoming_pallets + Number_of_pallets_shipped) / The_number_of_pallets_processed_by_one_employee)
return Number_of_employees, Number_of_employees
def get_insource_cost():
Wage_fund = Number_of_employees * Average_salary
The_cost_of_repairing_broken_equipment = Number_of_equipment * The_cost_of_equipment_repair_in_the_warehouse * Equipment_breakdown_rate_in_stock / 100
Spoilage = Average_number_of_damaged_goods * The_average_cost_of_one_product
return {'Обеспечение склада': The_cost_of_warehouse_maintenance_services,
'ФОТ': Wage_fund,
'Информационная поддержка': The_cost_of_warehouse_information_support,
'Ремонт оборудования': The_cost_of_repairing_broken_equipment,
'Порча товара': Spoilage,
'Общие расходы': The_cost_of_warehouse_maintenance_services + Wage_fund + The_cost_of_repairing_broken_equipment + The_cost_of_warehouse_information_support + Spoilage}
def get_outsource_cost():
Total_cost_of_storage_of_goods = Number_of_storage_days * Warehouse_area * Storage_mezzanine
The_cost_of_unloading_pallets_at_the_storage_location = Unloading_of_pallets_to_the_storage_place * Number_of_incoming_pallets
The_cost_of_shipping_the_goods_from_the_storage_location = Shipment_of_spare_parts * Number_of_pallets_shipped
The_cost_of_acceptance_of_the_goods = Acceptance * Number_of_incoming_pallets
The_cost_of_product_selection = Selection_of_spare_parts * Number_of_pallets_shipped
The_cost_of_registration_of_documents = (Number_of_incoming_pallets + Number_of_pallets_shipped) * Registration_of_documents_entry_or_exit
Costs = Total_cost_of_storage_of_goods + The_cost_of_unloading_pallets_at_the_storage_location \
+ The_cost_of_shipping_the_goods_from_the_storage_location + The_cost_of_acceptance_of_the_goods \
+ The_cost_of_product_selection + The_cost_of_registration_of_documents
Transaction_costs = Costs * Transaction_percentage / 100
return {'Хранение товара': Total_cost_of_storage_of_goods,
'Выгрузка паллет': The_cost_of_unloading_pallets_at_the_storage_location,
'Отгрузка паллет': The_cost_of_shipping_the_goods_from_the_storage_location,
'Приемка товара': The_cost_of_acceptance_of_the_goods,
'Подбор товара': The_cost_of_product_selection,
'Оформление документов': The_cost_of_registration_of_documents,
'Транзакционные затраты': Transaction_costs,
'Общие расходы': Transaction_costs + Costs}
if st.button('Расчет эффективности'):
Number_of_employees, Number_of_equipment = get_cnt_emplyes_and_equipment()
Average_number_of_damaged_goods = get_average_number_of_damaged_goods()
insource_cost = get_insource_cost()
outsource_cost = get_outsource_cost()
cost_data = pd.DataFrame({'Insource': insource_cost['Общие расходы'],'Outsource': outsource_cost['Общие расходы']}, index=['Общие расходы'])
st.bar_chart(cost_data)
st.write(f'Затраты Insource склад:', insource_cost['Общие расходы'])
st.write(f'Затраты Outsource склад:', outsource_cost['Общие расходы'])
insource_data = pd.DataFrame(insource_cost, index=[0]).T
outsource_data = pd.DataFrame(outsource_cost, index=[0]).T
col1, col2 = st.columns(2)
with col1:
st.write('Распределение затрат insource склад')
st.bar_chart(insource_data)
with col2:
st.write('Распределение затрат outsource склад')
st.bar_chart(outsource_data)
|