add error logging while processing location data

This commit is contained in:
Robert Einsle 2017-08-04 19:31:46 +02:00
parent 091723d2ac
commit e16872effe

View File

@ -11,52 +11,55 @@ log = logging.getLogger(__name__)
def process_location_data(): def process_location_data():
data = LocationData.objects.filter(processed=False).order_by('tst') data = LocationData.objects.filter(processed=False).order_by('tst')
for ld in data: for ld in data:
cli = Client.objects.filter(uuid=ld.client_id, desks__desk_no=ld.desk_no) try:
if cli.count() < 1: cli = Client.objects.filter(uuid=ld.client_id, desks__desk_no=ld.desk_no)
ld.processed = True if cli.count() < 1:
ld.error_msg = 'No client object found. Stopp processing! {}, {}'.format(ld.client_id, ld.desk_no)
ld.save()
log.error(ld.error_msg)
else:
cli = cli[0]
desk = cli.desks.filter(desk_no=ld.desk_no, enabled=True)
if desk.count() != 1:
ld.processed = True ld.processed = True
ld.error_msg = 'No desk object found. Stopp processing! {}, {}'.format(ld.client_id, ld.desk_no) ld.error_msg = 'No client object found. Stopp processing! {}, {}'.format(ld.client_id, ld.desk_no)
ld.save() ld.save()
log.error(ld.error_msg) log.error(ld.error_msg)
desk = desk[0]
ac = desk.accounting_set.order_by('time_from').reverse()
if ld.on_off:
acc = None
if ac.count() > 0 and ac[0].time_to is None:
log.error('Vorheriges Accounting nicht abgeschlossen: Desk_id {}, Accounting_id {}'
.format(desk.id, ac[0].id))
acc = ac[0]
if acc is None:
acc = Accounting(
desk=desk,
time_from=ld.tst,
)
acc.save()
ld.delete()
else: else:
if len(ac) > 0: cli = cli[0]
acc = ac[0] desk = cli.desks.filter(desk_no=ld.desk_no, enabled=True)
acc.time_to = ld.tst if desk.count() != 1:
acc.prize, acc.prize_normal, acc.prize_hh = utils.get_prize_for( ld.processed = True
start=acc.time_from, ld.error_msg = 'No desk object found. Stopp processing! {}, {}'.format(ld.client_id, ld.desk_no)
end=ld.tst, ld.save()
pph=desk.prize, log.error(ld.error_msg)
hh_start=cli.location.happy_hour_start, desk = desk[0]
hh_end=cli.location.happy_hour_end, ac = desk.accounting_set.order_by('time_from').reverse()
pphh=desk.prize_hh, if ld.on_off:
) acc = None
acc.reporter_uuid = cli.uuid if ac.count() > 0 and ac[0].time_to is None:
log.error('Vorheriges Accounting nicht abgeschlossen: Desk_id {}, Accounting_id {}'
.format(desk.id, ac[0].id))
acc = ac[0]
if acc is None:
acc = Accounting(
desk=desk,
time_from=ld.tst,
)
acc.save() acc.save()
ld.delete() ld.delete()
else: else:
ld.processed = True if len(ac) > 0:
ld.error_msg = 'No existing accountings found. Stopp processing! {}, {}'.format(ld.client_id, ld.desk_no) acc = ac[0]
ld.save() acc.time_to = ld.tst
log.error(ld.error_msg) acc.prize, acc.prize_normal, acc.prize_hh = utils.get_prize_for(
start=acc.time_from,
end=ld.tst,
pph=desk.prize,
hh_start=cli.location.happy_hour_start,
hh_end=cli.location.happy_hour_end,
pphh=desk.prize_hh,
)
acc.reporter_uuid = cli.uuid
acc.save()
ld.delete()
else:
ld.processed = True
ld.error_msg = 'No existing accountings found. Stopp processing! {}, {}'.format(ld.client_id, ld.desk_no)
ld.save()
log.error(ld.error_msg)
except:
log.exception('', exc_info=True)