Untitled
unknown
python
16 days ago
3.4 kB
6
Indexable
# Funzione che trova il cliente con l'esposizione (importo) massima def EsposizioneMaxCliente(T1): # Dizionario per tenere traccia del totale per ogni cliente totali = {} # Scorre ogni riga della tabella T1 for riga in T1: # Estrae il codice cliente e l'importo dalla riga corrente codice_cliente = riga[1] # Il codice cliente è nella seconda colonna importo = riga[2] # L'importo è nella terza colonna # Se il cliente è già presente nel dizionario if codice_cliente in totali: # Aggiunge l'importo al totale esistente per quel cliente totali[codice_cliente] = totali[codice_cliente] + importo else: # Se è la prima volta che vediamo questo cliente, inizializza il suo totale totali[codice_cliente] = importo # Inizializza le variabili per trovare il massimo max_cliente = None # Cliente con l'importo massimo max_totale = 0 # L'importo massimo trovato finora # Scorre il dizionario dei totali per trovare il massimo for cliente, totale in totali.items(): # Se trova un totale maggiore del massimo corrente if totale > max_totale: # Aggiorna sia il cliente che il totale massimo max_cliente = cliente max_totale = totale # Restituisce una lista con il codice del cliente e il suo totale massimo return [max_cliente, max_totale] # Funzione che calcola le differenze tra importi ordinati e pagamenti def ReportFlussiMonetari(T1, T2): # Lista che conterrà i risultati [cliente, differenza] risultato = [] # Scorre ogni riga della tabella T1 (ordini) for riga_t1 in T1: cod_cliente = riga_t1[1] # Codice cliente dall'ordine cod_ordine = riga_t1[0] # Codice ordine importo_t1 = riga_t1[2] # Importo dell'ordine # Inizializza la somma dei pagamenti per questo ordine somma_t2 = 0 # Cerca tutti i pagamenti relativi a questo ordine in T2 for riga_t2 in T2: # Se trova un pagamento che corrisponde al codice ordine if riga_t2[4] == cod_ordine: # Aggiunge l'importo del pagamento al totale somma_t2 = somma_t2 + riga_t2[3] # Calcola la differenza tra pagamenti e importo ordine differenza = somma_t2 - importo_t1 # Aggiunge alla lista risultato il cliente e la differenza risultato.append([cod_cliente, differenza]) # Restituisce la lista completa dei risultati return risultato # Dati di esempio per gli ordini (T1) # Struttura: [codice_ordine, codice_cliente, importo, data] T1 = [ [25, "A16", 357, "02/04/24"], # Ordine 25 del cliente A16 [13, "A17", 150, "08/01/24"], # Ordine 13 del cliente A17 [26, "A16", 280, "23/06/22"] # Ordine 26 del cliente A16 ] # Dati di esempio per i pagamenti (T2) # Struttura: [codice_prodotto, tipo, data, importo, codice_ordine] T2 = [ ["P1", "Carne", "24/01/24", 300, 25], # Pagamento per ordine 25 ["P22", "Verdura", "13/05/22", 17, 13], # Pagamento per ordine 13 ["P22", "Verdura", "04/10/23", 79, 13], # Altro pagamento per ordine 13 ["P2", "Carne", "30/11/23", 57, 25] # Altro pagamento per ordine 25 ] # Stampa il report dei flussi monetari print(ReportFlussiMonetari(T1,T2))
Editor is loading...
Leave a Comment