Add main.py
This commit is contained in:
85
main.py
Normal file
85
main.py
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
import csv
|
||||||
|
import sys
|
||||||
|
import operator
|
||||||
|
|
||||||
|
father = []
|
||||||
|
children = ''
|
||||||
|
valp = 0
|
||||||
|
valc = 0
|
||||||
|
valcc = 0
|
||||||
|
valpp = 0
|
||||||
|
valpag_tot = 0
|
||||||
|
valcon_tot = 0
|
||||||
|
valpagp_tot = 0
|
||||||
|
valconp_tot = 0
|
||||||
|
old_numdoc = '0'
|
||||||
|
old_magazzino = 0
|
||||||
|
my_list = []
|
||||||
|
with open("C:/Users/Matteo/Downloads/AMBRIABLR.csv", mode='r') as csv_file:
|
||||||
|
csv_reader = csv.DictReader(csv_file,delimiter=";")
|
||||||
|
sortedlist = sorted(csv_reader, key=operator.itemgetter("bcnumdoc"), reverse=False)
|
||||||
|
line_count = 0
|
||||||
|
for row in sortedlist:
|
||||||
|
if row['valpag']:
|
||||||
|
valp = float(row['valpag'].replace(',', '.'))
|
||||||
|
if row['valcon']:
|
||||||
|
valc = float(row['valcon'].replace(',', '.'))
|
||||||
|
if row['valpagp']:
|
||||||
|
valpp = float(row['valpagp'].replace(',', '.'))
|
||||||
|
if row['valconp']:
|
||||||
|
valcc = float(row['valconp'].replace(',', '.'))
|
||||||
|
|
||||||
|
|
||||||
|
if row["bcnumdoc"] != old_numdoc:
|
||||||
|
|
||||||
|
father.append([old_numdoc, row["bctipdoc"], children, float(valcon_tot), float(valpag_tot),float(valconp_tot), float(valpagp_tot)])
|
||||||
|
#print(f'valpag_tot{valcon_tot} -Numero { row["bcnumdoc"]} - {old_numdoc} ')
|
||||||
|
valpag_tot = valp # Start total for the new document
|
||||||
|
valcon_tot = valc # Start total for the new document
|
||||||
|
valpagp_tot = valpp # Start total for the new document
|
||||||
|
valconp_tot = valcc # Start total for the new document
|
||||||
|
print(f'Numero {old_numdoc} - {valcon_tot} ({valc}) - PADRE')
|
||||||
|
children = row["cudescri"]
|
||||||
|
old_numdoc = row["bcnumdoc"]
|
||||||
|
line_count += 1
|
||||||
|
|
||||||
|
else:
|
||||||
|
children += row["cudescri"]
|
||||||
|
children += " "
|
||||||
|
old_numdoc = row["bcnumdoc"]
|
||||||
|
valpag_tot += valp
|
||||||
|
valcon_tot += valc
|
||||||
|
valpagp_tot += valpp
|
||||||
|
valconp_tot += valcc
|
||||||
|
print(f'Numero {old_numdoc} - {valcon_tot} ({valc}) - FIGLIO')
|
||||||
|
line_count += 1
|
||||||
|
|
||||||
|
|
||||||
|
# Aggiungi l'ultimo documento processato
|
||||||
|
#father.append([old_numdoc, row["bctipdoc"], children, valcon_tot, valpag_tot])
|
||||||
|
|
||||||
|
|
||||||
|
# Funzione di ricerca lineare
|
||||||
|
def iterative_linear(arr, n, key_element):
|
||||||
|
for x in range(n):
|
||||||
|
if arr[x] == key_element:
|
||||||
|
return x
|
||||||
|
return -1
|
||||||
|
|
||||||
|
class ReportingDict:
|
||||||
|
def __init__(self, d):
|
||||||
|
self._d = d
|
||||||
|
def __getitem__(self, key):
|
||||||
|
try:
|
||||||
|
return self._d[key]
|
||||||
|
except KeyError:
|
||||||
|
raise KeyError(f'{key!r} is missing from {self._d!r}')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Scrivi su file di output
|
||||||
|
with open(sys.argv[1], 'wt') as f:
|
||||||
|
writer = csv.writer(f,delimiter=";")
|
||||||
|
writer.writerow(('Num doc', 'Serie', 'Descrizione', 'Valcon', 'Valpag', 'Valconp' , 'Valpagp'))
|
||||||
|
for i in father:
|
||||||
|
writer.writerow(i)
|
||||||
Reference in New Issue
Block a user