added sanitization on insert, empty strings in integer columns are replaced with 0

This commit is contained in:
2021-10-26 21:08:17 -06:00
parent 0589c7fce5
commit 0ad8ffe1c4
+27 -9
View File
@@ -32,15 +32,29 @@ def insertData(conn, table, values):
c.execute('INSERT INTO {} VALUES ({})'.format(table, holders), values) c.execute('INSERT INTO {} VALUES ({})'.format(table, holders), values)
conn.commit() conn.commit()
def sanatizeTotals(values): def sanitizeTotals(unsanitized):
""" """
checks cells and replaces empty string with 0 checks indexes 2+ and replaces empty string with 0
""" """
values = unsanitized[0:2]
for value in unsanitized[2:]:
if value:
values.append(value)
else:
values.append(0)
return tuple(values)
def sanatizeWorkarea(values): def sanitizeWorkarea(unsanitized):
""" """
checks indexes 6+ and replaces empty string with 0 checks indexes 6+ and replaces empty string with 0
""" """
values = unsanitized[0:6]
for value in unsanitized[6:]:
if value:
values.append(value)
else:
values.append(0)
return tuple(values)
def extractDsw(srcSheet, conn, reportDate): def extractDsw(srcSheet, conn, reportDate):
""" """
@@ -54,22 +68,24 @@ def extractDsw(srcSheet, conn, reportDate):
#exit test comes first #exit test comes first
if 'Total' in srcSheet.cell(i,0).value: if 'Total' in srcSheet.cell(i,0).value:
# We need to get the contract totals so we'll do that here # We need to get the contract totals so we'll do that here
values = ('contract', reportDate, srcSheet.cell(i,6).value, unsanitized = ['contract', reportDate, srcSheet.cell(i,6).value,
srcSheet.cell(i,7).value, srcSheet.cell(i,8).value, srcSheet.cell(i,7).value, srcSheet.cell(i,8).value,
srcSheet.cell(i,10).value, srcSheet.cell(i,11).value, srcSheet.cell(i,10).value, srcSheet.cell(i,11).value,
srcSheet.cell(i,12).value, srcSheet.cell(i,13).value, srcSheet.cell(i,12).value, srcSheet.cell(i,13).value,
srcSheet.cell(i,14).value, srcSheet.cell(i,20).value, srcSheet.cell(i,14).value, srcSheet.cell(i,20).value,
srcSheet.cell(i,18).value, srcSheet.cell(i,32).value, srcSheet.cell(i,18).value, srcSheet.cell(i,32).value,
srcSheet.cell(i,33).value, srcSheet.cell(i,34).value) srcSheet.cell(i,33).value, srcSheet.cell(i,34).value]
values = sanitizeTotals(unsanitized)
insertData(conn, 'totals', values) insertData(conn, 'totals', values)
i += 1 i += 1
values = ('terminal', reportDate, srcSheet.cell(i,6).value, unsanitized = ['terminal', reportDate, srcSheet.cell(i,6).value,
srcSheet.cell(i,7).value, srcSheet.cell(i,8).value, srcSheet.cell(i,7).value, srcSheet.cell(i,8).value,
srcSheet.cell(i,10).value, srcSheet.cell(i,11).value, srcSheet.cell(i,10).value, srcSheet.cell(i,11).value,
srcSheet.cell(i,12).value, srcSheet.cell(i,13).value, srcSheet.cell(i,12).value, srcSheet.cell(i,13).value,
srcSheet.cell(i,14).value, srcSheet.cell(i,20).value, srcSheet.cell(i,14).value, srcSheet.cell(i,20).value,
srcSheet.cell(i,18).value, srcSheet.cell(i,32).value, srcSheet.cell(i,18).value, srcSheet.cell(i,32).value,
srcSheet.cell(i,33).value, srcSheet.cell(i,34).value) srcSheet.cell(i,33).value, srcSheet.cell(i,34).value]
values = sanitizeTotals(unsanitized)
insertData(conn, 'totals', values) insertData(conn, 'totals', values)
#we're done so exit #we're done so exit
break break
@@ -82,13 +98,15 @@ def extractDsw(srcSheet, conn, reportDate):
else: else:
tod = srcSheet.cell(i,26).value tod = srcSheet.cell(i,26).value
nod = srcSheet.cell(i,28).value nod = srcSheet.cell(i,28).value
values = (srcSheet.cell(i,0).value, reportDate, srcSheet.cell(i,1).value, unsanitized = [srcSheet.cell(i,0).value, reportDate, srcSheet.cell(i,1).value,
srcSheet.cell(i,3).value, tod, nod, srcSheet.cell(i,3).value, tod, nod,
srcSheet.cell(i,9).value, srcSheet.cell(i,9).value,
srcSheet.cell(i,10).value, srcSheet.cell(i,11).value, srcSheet.cell(i,10).value, srcSheet.cell(i,11).value,
srcSheet.cell(i,12).value, srcSheet.cell(i,2).value, srcSheet.cell(i,12).value, srcSheet.cell(i,2).value,
srcSheet.cell(i,24).value, srcSheet.cell(i,13).value, srcSheet.cell(i,24).value, srcSheet.cell(i,13).value,
srcSheet.cell(i,19).value, srcSheet.cell(i,17).value) srcSheet.cell(i,19).value, srcSheet.cell(i,17).value]
values = sanitizeWorkarea(unsanitized)
print(values)
insertData(conn, 'dsw', values) insertData(conn, 'dsw', values)
if 'Svc' in srcSheet.cell(i,0).value: if 'Svc' in srcSheet.cell(i,0).value:
extract = True extract = True