Spaces:
Sleeping
Sleeping
Update src/streamlit_app.py
Browse files- src/streamlit_app.py +10 -9
src/streamlit_app.py
CHANGED
|
@@ -34,7 +34,7 @@ fixed_and_default_values = {
|
|
| 34 |
# Definizione dettagliata del layout del file .dat.
|
| 35 |
# 'excel_col': Il nome esatto della colonna nel file Excel di origine.
|
| 36 |
# NOTA IMPORTANTE: i nomi delle colonne qui devono corrispondere ESATTAMENTE
|
| 37 |
-
# a come appaiono nelle intestazioni dei tuoi file Excel.
|
| 38 |
dat_format_spec = [
|
| 39 |
# Id | Nome | Obbl | Tipo | Lungh | Inizio | Descrizione | Default | Campi
|
| 40 |
{'id': '1', 'name': 'codice_identificativo_cliente', 'length': 12, 'numeric_pad_zero': False, 'decimals': 0, 'mandatory': True, 'source': 'fixed', 'excel_col': None, 'description': "Valore costante che identifica il cliente, viene comunicato al cliente al momento dell'attivazione del servizio, un esempio di codice è CLI 000000009", 'start_pos': 1},
|
|
@@ -124,9 +124,11 @@ def generate_poste_dat_file(df_shipping_mark_input, df_shipment_order_input):
|
|
| 124 |
df_shipment_order['orderRef'] = df_shipment_order['orderRef'].astype(str).str.strip()
|
| 125 |
|
| 126 |
# Esegue la join: cruciale 'how=inner' per una join "secca"
|
| 127 |
-
#
|
| 128 |
-
#
|
| 129 |
-
|
|
|
|
|
|
|
| 130 |
|
| 131 |
if df_merged.empty:
|
| 132 |
st.warning("Nessun record corrispondente trovato dopo la join. Assicurati che 'orderRef' sia presente e corrisponda in entrambi i file.")
|
|
@@ -149,9 +151,8 @@ def generate_poste_dat_file(df_shipping_mark_input, df_shipment_order_input):
|
|
| 149 |
if source_type == 'fixed':
|
| 150 |
value_to_format = fixed_and_default_values.get(field_name, '')
|
| 151 |
elif source_type == 'shipping_mark_file':
|
| 152 |
-
# Accede alle colonne di shipping_mark
|
| 153 |
-
|
| 154 |
-
col_key = f"{excel_col_name}_sm"
|
| 155 |
if col_key in row: # Verifica se la colonna esiste nel row (DataFrame fuso)
|
| 156 |
value_to_format = row.get(col_key)
|
| 157 |
else:
|
|
@@ -188,8 +189,8 @@ def generate_poste_dat_file(df_shipping_mark_input, df_shipment_order_input):
|
|
| 188 |
else: # Se NaN o vuoto, usa stringa vuota
|
| 189 |
value_to_format = ''
|
| 190 |
elif source_type == 'shipment_order_file':
|
| 191 |
-
# Accede alle colonne di shipment_order
|
| 192 |
-
col_key =
|
| 193 |
if col_key in row: # Verifica se la colonna esiste nel row (DataFrame fuso)
|
| 194 |
value_to_format = row.get(col_key)
|
| 195 |
else:
|
|
|
|
| 34 |
# Definizione dettagliata del layout del file .dat.
|
| 35 |
# 'excel_col': Il nome esatto della colonna nel file Excel di origine.
|
| 36 |
# NOTA IMPORTANTE: i nomi delle colonne qui devono corrispondere ESATTAMENTE
|
| 37 |
+
# a come appaiono nelle intestazioni dei tuoi file Excel, inclusa la capitalizzazione.
|
| 38 |
dat_format_spec = [
|
| 39 |
# Id | Nome | Obbl | Tipo | Lungh | Inizio | Descrizione | Default | Campi
|
| 40 |
{'id': '1', 'name': 'codice_identificativo_cliente', 'length': 12, 'numeric_pad_zero': False, 'decimals': 0, 'mandatory': True, 'source': 'fixed', 'excel_col': None, 'description': "Valore costante che identifica il cliente, viene comunicato al cliente al momento dell'attivazione del servizio, un esempio di codice è CLI 000000009", 'start_pos': 1},
|
|
|
|
| 124 |
df_shipment_order['orderRef'] = df_shipment_order['orderRef'].astype(str).str.strip()
|
| 125 |
|
| 126 |
# Esegue la join: cruciale 'how=inner' per una join "secca"
|
| 127 |
+
# Quando 'on' è specificato, la colonna di merge (orderRef) non viene suffissa.
|
| 128 |
+
# Le altre colonne, se non hanno nomi duplicati tra i due DF, non vengono suffisse.
|
| 129 |
+
# Poiché i nomi delle colonne di ShipmentOrder sono nidificati (.name, .address.address),
|
| 130 |
+
# non ci dovrebbero essere duplicati a parte 'orderRef', quindi non vengono suffisse.
|
| 131 |
+
df_merged = pd.merge(df_shipping_mark, df_shipment_order, on='orderRef', how='inner')
|
| 132 |
|
| 133 |
if df_merged.empty:
|
| 134 |
st.warning("Nessun record corrispondente trovato dopo la join. Assicurati che 'orderRef' sia presente e corrisponda in entrambi i file.")
|
|
|
|
| 151 |
if source_type == 'fixed':
|
| 152 |
value_to_format = fixed_and_default_values.get(field_name, '')
|
| 153 |
elif source_type == 'shipping_mark_file':
|
| 154 |
+
# Accede alle colonne di shipping_mark direttamente con il loro nome originale
|
| 155 |
+
col_key = excel_col_name
|
|
|
|
| 156 |
if col_key in row: # Verifica se la colonna esiste nel row (DataFrame fuso)
|
| 157 |
value_to_format = row.get(col_key)
|
| 158 |
else:
|
|
|
|
| 189 |
else: # Se NaN o vuoto, usa stringa vuota
|
| 190 |
value_to_format = ''
|
| 191 |
elif source_type == 'shipment_order_file':
|
| 192 |
+
# Accede alle colonne di shipment_order direttamente con il loro nome originale
|
| 193 |
+
col_key = excel_col_name
|
| 194 |
if col_key in row: # Verifica se la colonna esiste nel row (DataFrame fuso)
|
| 195 |
value_to_format = row.get(col_key)
|
| 196 |
else:
|