def today_uurregistratie(user): bericht = '' registraties = get_nritemuurregistraties(aantalitems=7, user=user) pprint(registraties) for reg in registraties: if reg['actie'] == 'opmerking': bericht += '\n'+vertaler.vertaal(text='Opmerking',user=user)+': '+reg['time']+'\n '+reg['opmerking'] else: bericht += '\n'+vertaler.vertaal(text=reg['actie'],user=user) + ': ' + reg['time']+'\n' if bericht == '': bericht = vertaler.vertaal(text='Tijdsregistratie',user=user) return bericht
def send_start(id): but = [] user = DB.get_user(str(id)) afdelingen = user['afdeling'] for afdeling, toelating in afdelingen.items(): afdel = {} afdel[vertaal(afdeling, user)] = str(id) + '_open_afdeling_' + afdeling but.append(afdel) BNinstellingen = { '<<< ' + vertaal('Instellingen', user): str(id) + '_instellingen_user' } but.append(BNinstellingen) send_msg(text='Kies een afdeling:', user=user, but=but)
def send_instellingen_user(id): user = DB.get_user(str(id)) but = [] BNmorpremission = { vertaal('Vraag meer toegangen', user): str(user['id']) + '_meer_toegangen' } but.append(BNmorpremission) BNterug = { '<<< ' + vertaal('Terug', user): str(id) + '_terug_naar_afdelingen' } but.append(BNterug) send_msg('Instellingen', user, but)
def send_msg(text, user, but=[]): try: bot.editMessageText(text=vertaal(text=text, user=user), msg_identifier=(user['id'], user['last_msg_id']), reply_markup=InlineKeyboardMarkup( inline_keyboard=kb.Set_InlineKeyboard(but))) except: bericht = bot.sendMessage( chat_id=user['id'], text=vertaal(text=text, user=user), reply_markup=InlineKeyboardMarkup( inline_keyboard=kb.Set_InlineKeyboard(but))) DB.add_user_data(user['id'], 'last_msg_id', bericht['message_id'])
def send_lijstvoertuigen(user, text): but = [] afdeling = user['nu_afdeling'] if afdeling == '': return False afdelingen = DB.get_afdelingen() types = [x for x in afdelingen if x['naam'] == afdeling][0]['header1'] voertuigen = WacsClient.GetListVoertuigen() if len(text) < 4: while len(text) < 3: text = '0' + text zoekcriteria = 'Name' result = [ x for x in voertuigen if x['Active'] and x['Type'].upper() in types and text in x[zoekcriteria] ] else: zoekcriteria = 'Header1' result1 = [ x for x in voertuigen if x['Active'] and x['Type'].upper() in types ] result = [] for x in result1: if x[zoekcriteria] != None: if text.upper() in x[zoekcriteria]: result.append(x) if len(result): bericht = 'Kies jouw voertuig.' if len(result) > 15: bericht = 'Je imput was niet specifiek genoeg.' else: for asset in result: name = asset['Name'].split(' ')[0] buttonname = vertaal( asset['Type'], user) + ' ' + name + ' ' + asset['Header1'] afdel = {} afdel[buttonname] = str( user['id']) + '_' + user['nu_toelating'] + '_Vgnr_' + name but.append(afdel) else: bericht = 'Geen voertuigen gevonden' BNterug = { '<<<' + vertaal('Terug', user): str(user['id']) + '_terug_naar_toelatingen_' + user['nu_afdeling'] } but.append(BNterug) send_msg(bericht, user, but)
def send_toelating(id, afdeling, toelating, msg=None): user = DB.get_user(str(id)) but = [] BNterug = { '<<< ' + vertaal('Terug', user): str(id) + '_terug_naar_toelatingen_' + afdeling } DB.add_user_data(user['id'], 'nu_afdeling', afdeling) DB.add_user_data(user['id'], 'nu_toelating', toelating) if toelating in [ 'Voertuiglocatie', 'Herstelaanvraag', 'Bandendrukken', 'Voertuiginfo' ] and user['nu_voertuig'] == '': but.append(BNterug) send_msg('Wat is de nummer of nummerplaat van de machine?', user, but) elif toelating in ['Tijdsregistratie']: but.append(BNterug) send_msg( 'Welkom bij de tijdsregistratie-module\n\nTelkens je op de knop [start dag] of [einde dag] klikt gaan we ook naar je huidige locatie vragen.\nVoor een opmerking stuur je me nu een berichtje.', user, but) bericht = DB.today_uurregistratie(user) send_msg_location(text=bericht, user=user) else: send_asset_info(id, toelating)
def send_afdeling(id, afdeling): but = [] user = DB.get_user(str(id)) toegangen = user['afdeling'][afdeling] if (len(toegangen) % 2) == 0: for x, y in grouped(toegangen, 2): afdel = {} afdel[vertaal( x, user)] = str(id) + '_open_toegang_' + afdeling + '_' + x afdel[vertaal( y, user)] = str(id) + '_open_toegang_' + afdeling + '_' + y but.append(afdel) BNterug = { '<<< ' + vertaal('Terug', user): str(id) + '_terug_naar_afdelingen' } but.append(BNterug) else: for x, y in grouped(toegangen[:-1], 2): afdel = {} afdel[vertaal( x, user)] = str(id) + '_open_toegang_' + afdeling + '_' + x afdel[vertaal( y, user)] = str(id) + '_open_toegang_' + afdeling + '_' + y but.append(afdel) last = {} last['<<< ' + vertaal('Terug', user)] = str(id) + '_terug_naar_afdelingen' last[vertaal( toegangen[-1], user )] = str(id) + '_open_toegang_' + afdeling + '_' + toegangen[-1] but.append(last) send_msg('Wat wil je doen?', user, but)
def send_new_start(id): but = [] user = DB.get_user(str(id)) afdelingen = user['afdeling'] for afdeling, toelating in afdelingen.items(): afdel = {} afdel[vertaal(afdeling, user)] = str(id) + '_open_afdeling_' + afdeling but.append(afdel) BNinstellingen = { '<<< ' + vertaal('Instellingen', user): str(id) + '_instellingen_user' } but.append(BNinstellingen) bericht = bot.sendMessage(chat_id=user['id'], text=vertaal(text='Kies een afdeling:', user=user), reply_markup=InlineKeyboardMarkup( inline_keyboard=kb.Set_InlineKeyboard(but))) DB.add_user_data(user['id'], 'last_msg_id', bericht['message_id'])
def on_chat_message(msg): pprint(msg) content_type, chat_type, chat_id = telepot.glance(msg) user = DB.get_user(str(chat_id)) delete_msg(chat_id, msg['message_id']) if not user: user = DB.add_user(msg) if 'location' in msg: if user['nu_toelating'] == 'Tijdsregistratie': sm.send_tijdsregistratie_locatie(user=user, locatie=msg['location']) print ('%-25s%-25s%-60s%-20s' % ('[LOCATIE]', user['naam'], 'locatie ontvangen', sm.get_time())) elif 'text' in msg: tx = msg['text'] text = '[BERICHT]' print ('%-25s%-25s%-60s%-20s' % (text, user['naam'], tx, sm.get_time())) if tx[0] == '/': if tx == '/start': if 'afdelingen' in user: idd = user['id'] sm.send_new_start(id=idd) else: bericht = bot.sendMessage(chat_id=chat_id, text=vertaal( text='We hebben een toegangsaanvraag voor jou verstuurd.', user=user)) DB.add_user_data(chat_id, 'last_msg_id', bericht['message_id']) teleadmin.send_new_user(user) elif 'afdeling' in user: if 'nu_toelating' in user: toelating = user['nu_toelating'] if toelating not in ['Tijdsregistratie']: sm.send_lijstvoertuigen(user=user, text=tx) else: sm.send_tijdsregistratie_opmerking(user, tx) else: bericht = bot.sendMessage(chat_id=chat_id, text=vertaal( text='We hebben een toegangsaanvraag voor jouw verstuurd.', user=user)) DB.add_user_data(chat_id, 'last_msg_id', bericht['message_id']) teleadmin.send_new_user(user)
def send_msg_location(text, user): textbutton = DB.nexxt_uurregistratie(user) + ' werkdag' try: telegram.delete_msg(user['id'], user['last_tijdregistratie_id']) except: None bericht = bot.sendMessage( text=text, chat_id=user['id'], reply_markup=ReplyKeyboardMarkup(keyboard=[[ KeyboardButton(text=vertaal(textbutton, user), request_location=True) ]])) DB.add_user_data(user['id'], 'last_tijdregistratie_id', bericht['message_id'])
def send_asset_info(idd, infoset): but = [] user = DB.get_user(str(idd)) toegangen = user['afdeling'][user['nu_afdeling']] if user['nu_toelating'] in toegangen: toegangen.remove(user['nu_toelating']) if 'Tijdsregistratie' in toegangen: toegangen.remove('Tijdsregistratie') if (len(toegangen) % 2) == 0: for x, y in grouped(toegangen, 2): afdel = {} afdel[vertaal(x, user)] = str(user['id']) + '_open_toegang_' + user['nu_afdeling']+'_' + x + \ '_Vgnr_' + user['nu_voertuig'] afdel[vertaal(y, user)] = str(user['id']) + '_open_toegang_' + user['nu_afdeling']+'_' + y + \ '_Vgnr_' + user['nu_voertuig'] but.append(afdel) BNterug = { '<<< ' + vertaal('Terug', user): str(idd) + '_terug_naar_afdelingen' } but.append(BNterug) else: for x, y in grouped(toegangen[:-1], 2): afdel = {} afdel[vertaal(x, user)] = str(user['id']) + '_open_toegang_' + user['nu_afdeling']+'_' + x + \ '_Vgnr_' + user['nu_voertuig'] afdel[vertaal(y, user)] = str(user['id']) + '_open_toegang_' + user['nu_afdeling']+'_' + y + \ '_Vgnr_' + user['nu_voertuig'] but.append(afdel) last = {} last['<<< ' + vertaal('Terug', user)] = str(idd) + '_terug_naar_afdelingen' last[vertaal(toegangen[-1], user)] = str( idd) + '_open_toegang_' + user['nu_afdeling'] + '_' + toegangen[-1] but.append(last) bericht = infoset send_msg(vertaal(bericht, user) + ' : ' + user['nu_voertuig'], user, but)
def on_callback_query(msg): query_id, from_id, query_data = telepot.glance(msg, flavor='callback_query') user = DB.get_user(str(from_id)) text = '[BUTTON]' print('%-25s%-25s%-60s%-20s' % (text, user['naam'], msg['data'], sm.get_time())) if '_Vgnr_' in query_data: nr = query_data.split('_Vgnr_')[1] DB.add_user_data(user['id'], 'nu_voertuig', nr) if 'Del_msg' in query_data: delete_msg(from_id, msg['message']['message_id']) elif '_add_afdeling_weigeren' in query_data: idd = int(query_data.split('_')[0]) bot.sendMessage(chat_id=idd, text=vertaal(text='Je krijgt geen extra toegang', user=idd)) delete_msg(from_id, msg['message']['message_id']) elif '_add_afdeling_' in query_data: idd = int(query_data.split('_')[0]) afdeling = query_data.split('_')[3] teleadmin.send_toelating(afdeling1=afdeling, id=idd) elif '_add_afdelingtoelating_' in query_data: idd = int(query_data.split('_')[0]) afdeling = query_data.split('_')[3] toelating = query_data.split('_')[4] DB.add_user_toelating(idd, afdeling, toelating) elif 'startgebruiker_' in query_data: idd = int(query_data.split('_')[1]) sm.send_start(id=idd) elif '_open_afdeling_' in query_data: idd = int(query_data.split('_')[0]) afdeling = query_data.split('_')[3] sm.send_afdeling(id=idd, afdeling=afdeling) DB.add_user_data(user['id'], 'nu_afdeling', afdeling) elif '_terug_naar_afdelingen' in query_data: idd = int(query_data.split('_')[0]) sm.send_start(id=idd) DB.add_user_data(user['id'], 'nu_afdeling', '') DB.add_user_data(user['id'], 'nu_toelating', '') DB.add_user_data(user['id'], 'nu_voertuig', '') elif '_terug_naar_toelatingen_' in query_data: idd = int(query_data.split('_')[0]) afdeling = query_data.split('_')[4] sm.send_afdeling(id=idd, afdeling=afdeling) DB.add_user_data(user['id'], 'nu_afdeling', afdeling) DB.add_user_data(user['id'], 'nu_toelating', '') DB.add_user_data(user['id'], 'last_tijdregistratie_id', '') DB.add_user_data(user['id'], 'nu_voertuig', '') if 'last_tijdregistratie_id' in user: if user['last_tijdregistratie_id'] != '': delete_msg(idd,user['last_tijdregistratie_id']) elif '_instellingen_user' in query_data: idd = int(query_data.split('_')[0]) sm.send_instellingen_user(id=idd) elif '_meer_toegangen' in query_data: idd = int(query_data.split('_')[0]) user = DB.get_user(str(idd)) teleadmin.send_new_user(user) elif '_open_toegang_' in query_data: idd = int(query_data.split('_')[0]) afdeling = query_data.split('_')[3] toelating = query_data.split('_')[4] sm.send_toelating(id=idd, afdeling=afdeling, toelating=toelating) elif '_Vgnr_' in query_data: idd = int(query_data.split('_')[0]) infoset = query_data.split('_')[1] sm.send_asset_info(idd=idd, infoset=infoset) else: idd = user['id'] sm.send_start(id=idd)