Ciao,
per fare si può fare .... non ci sono particolari problemi ... molto facile
Però, a parte chenon hai esposto neancheuna riga di codice, quindi hai solo richiesto una soluzione. Questo non se po fa ;-)
Ma prima di tutto sai con certezza come dover calcolare i PESI ?
L'esempio che hai postato può non essere sempre vero...disiamoo che hai semplificato un pò tanto tanto tanto.
Tu hai fatto un esempio che come lo giri e lo rigiri darà sempre il 100% di peso totale... allora ti chiedo come risolveresti se il totale dei pesi non è pari a 100 ???
Esempio:

Nel PRIMO caso non si sbaglia... darà sempre 100 con quel tipo di importi
Nel SECONDO caso se non si arrotondano i pesi si riesce quasi sempre ad avere il 100 ... altrimenti se il peso deve essere un numero intero allora si avrà un totale peso uguale a 99 applicando l'arrotondamento matematico (sopra/sotto il 5)
Nel TERZO caso, vale come per il secondo caso, copn la differenza che si ha un peso totale di 101
Ora, creare una fuction alla quale passare il totale Documento e i vari possibili Importi e che restituisce il peso, è molto molto semplice... ma prima di tutto bisogna avere le idee chiare. Poi alla fine tutto si riduce ad una semplice Proporzione.
Nel tuo caso come devi agire ?