File size: 7,952 Bytes
2f07243
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9f36753
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
import streamlit as st
import pandas as pd
import csv



st.logo(
    "images/ledesma-logo.png",
    icon_image="images/ledesma-logo.png",
)

st.image("images/ledesma-logo.png", width=300)
st.markdown("<h2 style='text-align: left;'>Comparador de precios vs competencia</h1>", unsafe_allow_html=True)
st.divider()

st.subheader("Sucursales:")

df = pd.read_csv("./Products.csv")



stores = pd.read_csv("sucursales.csv")
provinces = stores['provincia'].unique()
provinces_dict = {
'Ciudad Aut贸noma de Buenos Aires': 'AR-C',
'La Rioja': 'AR-F',
'Santiago del Estero': 'AR-G',
'Catamarca': 'AR-K',
'Neuqu茅n': 'AR-Q',
'R铆o Negro': 'AR-R',
'Santa Fe': 'AR-S',
'Tucum谩n': 'AR-T',
'Chubut': 'AR-U',
'C贸rdoba': 'AR-X',
'Santa Cruz': 'AR-Z'
}

provinces_dataframe = pd.DataFrame({
'provincia':['AR-C','AR-F','AR-G','AR-K','AR-Q','AR-R','AR-S','AR-T','AR-U','AR-X','AR-Z'],
'provincia_nombre':['Ciudad Aut贸noma de Buenos Aires','La Rioja','Santiago del Estero','Catamarca','Neuqu茅n','R铆o Negro','Santa Fe','Tucum谩n','Chubut','C贸rdoba','Santa Cruz']
})

provinces_list = ['Ciudad Aut贸noma de Buenos Aires','La Rioja','Santiago del Estero','Catamarca','Neuqu茅n','R铆o Negro','Santa Fe','Tucum谩n','Chubut','C贸rdoba','Santa Cruz']
sucursales_seleccionadas = st.multiselect('Selecciona provincias de interes', provinces_list, placeholder="Elige una opcion")

# check if sucursales_seleccionadas no es null
if sucursales_seleccionadas:

    for sucursal_seleccionada in sucursales_seleccionadas:
        #st.write(f'**{sucursal_seleccionada}**')
        province_code = provinces_dict[sucursal_seleccionada]
        stores_selected = stores[stores['provincia']==province_code]
        stores_selected = stores_selected[['banderaDescripcion','direccion', 'localidad']]
        stores_selected.columns = ['Marca','Direccion', 'Localidad']
        #st.write(stores_selected)


    province_codes = [provinces_dict[sucursal_seleccionada] for sucursal_seleccionada in sucursales_seleccionadas]

    selected_provinces = stores[stores['provincia'].isin(province_codes)]

    store_codes = selected_provinces['sucursalId'].to_list()


    st.map(selected_provinces,latitude='lat', longitude='lng', color="#00a3e0", use_container_width=True)

    tab1, tab2, tab3 = st.tabs(["Stevia 50u", "Stevia 96u", "Stevia 200u"])

    products = pd.read_csv("Products_unique.csv")
    product_stores_original = pd.read_csv("Store-Products.csv")

    def show_stats(product, competitors_list, product_stores_original, store_codes, provinces_dataframe, stores, cuantity):

        product_row = products[products['id']==product] 
        st.text(product_row['nombre'].values[0])

        st.image(f"images/ledesma{cuantity}u.png", width=200)

        product_stores_original = product_stores_original[product_stores_original['id_sucursal'].isin(store_codes)]
        

        #save to csv
        #TODO REMOVE THIS
        product_stores_original_test = product_stores_original.copy()
        product_stores_original_test.rename(columns={'id_sucursal': 'sucursalId'}, inplace=True)
        product_stores_original_test = pd.merge(product_stores_original_test, stores, on='sucursalId', how='inner')
        product_stores_original_test = pd.merge(product_stores_original_test, provinces_dataframe, on='provincia', how='inner')
        product_stores_original_test_filtered = product_stores_original_test[product_stores_original_test['id_producto'].isin(competitors_list + [product])]


        st.subheader("Comparativa de productos en las regiones seleccionadas")
        if product_stores_original_test_filtered.empty:
            st.warning("No se encontraron precios para los productos en las regiones seleccionadas")
        else:
            product_stores_original_test_filtered.to_csv(f"product_stores_original_test_filtered_{cuantity}.csv",index=False)
            st.bar_chart(product_stores_original_test_filtered,x='provincia_nombre',y='precio_lista',color='nombre_producto', stack=False, horizontal=True)



        competitors = product_stores_original[product_stores_original['id_producto'].isin(competitors_list)]
        product_presentation = product_stores_original[product_stores_original['id_producto'].isin([product])]

        if product_presentation.empty:
            st.warning("No se encontraron precios para el producto de Ledesma en las regiones seleccionadas")
        else:
            st.subheader("Precio del producto en las regiones seleccionadas")
            product_presentation.rename(columns={'id_sucursal': 'sucursalId'}, inplace=True)
            product_presentation = pd.merge(product_presentation, stores, on='sucursalId', how='inner')
            product_presentation = pd.merge(product_presentation, provinces_dataframe, on='provincia', how='inner')
            st.bar_chart(product_presentation,x='banderaDescripcion',y='precio_lista', stack=False,color='provincia_nombre')


        st.divider()

        if competitors.empty:
            st.warning("No se encontraron precios para los productos de la competencia en las regiones seleccionadas")
        else:
            ######
            ######
            st.subheader("Precio de los productos de la competencia en las regiones seleccionadas")
            competitors_50_brands = competitors['marca_producto'].unique()
            #reemplazar sucursalID por id
            competitors.rename(columns={'id_sucursal': 'sucursalId'}, inplace=True)
            competitors_join = pd.merge(competitors, stores, on='sucursalId', how='inner')
            competitors_join = pd.merge(competitors_join, provinces_dataframe, on='provincia', how='inner')
            print("competitors_join")
            print(competitors_join.columns)
            for brand in competitors_50_brands:
                st.write(brand)
                st.bar_chart(competitors_join[competitors_join['marca_producto']==brand],x='banderaDescripcion',y='precio_lista',color='provincia_nombre', stack=False)



    with tab1:

        ledesma_50_u = 7799086000266
        competitors_ledesma_50_u = [7792129003620, 7791720030493, 7794940000758, 7790150812747]
        show_stats(ledesma_50_u, competitors_ledesma_50_u, product_stores_original, store_codes, provinces_dataframe, stores,50)

    with tab2:
        ledesma_100_u = 7799086000051
        competitors_ledesma_100_u = [7794940000765, 7792129003637, 7791720030509, 7790150812761]
        show_stats(ledesma_100_u, competitors_ledesma_100_u, product_stores_original, store_codes, provinces_dataframe, stores,96)



    with tab3:
        ledesma_200_u = 7799086000198
        competitors_ledesma_200_u = [7794940000772, 7792129003507, 7792129003644, 7790150812785]
        show_stats(ledesma_200_u, competitors_ledesma_200_u, product_stores_original, store_codes, provinces_dataframe, stores,200)


st.divider()
with st.expander("Regla de comparacion :pencil:"):


    col1, col2 , col3 = st.columns([1,2,1])

    with col1:
        st.write("Producto")
        st.write("Competidores")

    with col2:
        st.write("Azucar Ledesma 1 kg :pencil:")
        st.button("Agregar competidores")

    st.text_area(label='Competidores agregados',value="Azucar La Perla 1 kg")

    col1, col2 , col3 = st.columns([1,2,1])
    with col1:
        st.write("Ubicaciones :world_map:")
        st.button("Agregar sucursales")


    st.text_area(label='Ubicaciones incluidas',value="C. Pellegrini 3250,Hipermercado Carrefour,Rosario")

    col1, col2 , col3 = st.columns([1,3,1])
    with col1:
        combo = st.selectbox(
        "Criterio",
        ("Menor precio", "Mayor precio"),
    )
    with col2:
        if combo == "Menor precio":
            st.text_input("Notificar si el precio del producto es **menor** por un porcentaje de")
        if combo == "Mayor precio":
            st.text_input("Notificar si el precio del producto es **mayor** por un porcentaje de")
    st.checkbox("Notificar via email",value=True)
    st.button("Guardar regla")