-
Notifications
You must be signed in to change notification settings - Fork 0
/
sms_Baza_odnowienia.py
124 lines (108 loc) · 5.92 KB
/
sms_Baza_odnowienia.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
from openpyxl import load_workbook
from datetime import date, datetime, timedelta
import time
import re
import boto3
start_time = time.time()
now = datetime.now().strftime("Wysłane dnia %d.%m.%Y o godzinie %H:%M:%S")
print(f'Wysyłka SMS - Przypomnienia o odnowieniach.\n{now}')
class SMS:
def __init__(self):
# self.wb = load_workbook(filename="M:/Agent baza/2014 BAZA MAGRO.xlsm", read_only=True)
self.wb = load_workbook(filename="/run/user/1000/gvfs/smb-share:server=192.168.1.12,share=e/Agent baza/2014 BAZA MAGRO.xlsm",
read_only=True)
self.ws = self.wb['BAZA 2014']
self.cells = self.ws['G4178':f'AV{self.ws.max_row}']
today = date.today()
self.week_period = today - timedelta(-9)
def read_excel(self):
for rozlicz, H, I, J, K, L, M, N, O, P, Q, R, nr_tel, email, U, V, marka, model, przedmiot_ub, rok_prod, SU, \
AB, AC, AD, pocz, koniec, AG, AH, AI, AJ, AK, tu, rodz_ub, nr_polisy, AO, AP, AQ, AR, AS, AT, AU, \
przypis in self.cells:
self.rozlicz = rozlicz.value
self.nr_tel = nr_tel.value
self.przedmiot_ub = przedmiot_ub.value
if self.przedmiot_ub is None:
self.przedmiot_ub = ''
self.tu = tu.value
self.koniec = koniec.value
self.rodz_ub = rodz_ub.value
self.nr_polisy = nr_polisy.value
self.przypis = przypis.value
yield self.koniec
def select_cells(self):
for self.koniec in self.read_excel():
if self.koniec is not None and re.search('[0-9]', str(self.koniec)) and not \
re.search('[AWV()=.]', str(self.koniec)):
koniec_okresu = str(self.koniec)
self.koniec_okresu_bez_sec = koniec_okresu[:10]
if datetime.strptime(str(self.koniec_okresu_bez_sec), '%Y-%m-%d').date() == self.week_period:
if self.nr_tel is not None and self.rodz_ub != 'życ' and self.przypis is not None:
d = {'Filipiak': 'Ultimatum, tel. 694888197', 'Nowakowski': 'MAGRO, tel. 602752893',
'Pankiewicz': 'R. Pankiewiczem, tel. 577839889', 'Skrzypek': 'MAGRO, tel. 602752893',
'Wawrzyniak': 'A. Wawrzyniak, tel. 691602675', 'Włodarczyk': 'M. Włodarczyk, tel. 502934091',
'Wołowski': 'M. Wołowskim, tel. 692830084',
'MAGRO': 'MAGRO, tel. 602752893', 'Robert': 'MAGRO, tel. 572810576'}
if self.rozlicz in d:
self.rozlicz = d.get(self.rozlicz)
di = {'ALL': 'Allianz',
'AXA': 'AXA',
'BAL': 'Balcia',
'COM': 'Compensa',
'EIN': 'Euroins',
'EPZU': 'PZU',
'GEN': 'Generali',
'ŻGEN': 'Generali',
'GOT': 'Gothaer',
'HDI': 'HDI',
'HES': 'Ergo Hestia',
'IGS': 'IGS',
'INT': 'INTER',
'LIN': 'LINK 4',
'MTU': 'MTU',
'PRO': 'Proama',
'PZU': 'PZU',
'RIS': 'InterRisk',
'TUW': 'TUW', 'TUZ': 'TUZ',
'UNI': 'Uniqa',
'WAR': 'Warta',
'ŻWAR': 'Warta',
'WIE': 'Wiener',
'YCD': 'You Can Drive',
'None': ''}
self.tu = di.get(self.tu)
self.nr_tel = str(self.nr_tel)
if self.nr_tel.startswith('42'): # numer domowy
self.nr_tel = ''
if re.search(r'[0-9]', self.nr_tel):
self.nr_tel = '48' + self.nr_tel.replace(' ', '').strip('+')
if re.search('[a-zA-z;:?,]', self.nr_tel):
self.nr_tel = self.nr_tel[:11]
if len(self.nr_tel) > 11:
self.nr_tel = self.nr_tel[2:13]
# print(self.koniec_okresu_bez_sec)
yield self.koniec_okresu_bez_sec
def wysyłka_aws(self):
for _ in self.select_cells():
client = boto3.client('sns', 'eu-west-1')
client.publish(PhoneNumber=str(self.nr_tel), Message='Dnia ' + str(self.koniec_okresu_bez_sec)
+ ' dobiega końca Twoja polisa ubezpieczeniowa, nr. '
+ str(self.nr_polisy) + ' - ' + str(self.tu) + ', '
+ str(self.przedmiot_ub)
+ '. W spr odnowienia prosimy o kontakt z ' + str(self.rozlicz)
+ '\n\nubezpieczenia-magro.pl/kalkulatorOC')
print(str(self.nr_tel + ' - Dnia ' + self.koniec_okresu_bez_sec
+ ' dobiega końca Twoja polisa ubezpieczeniowa, nr. '
+ self.nr_polisy + ' - ' + self.tu + ', '
+ self.przedmiot_ub + '. W spr odnowienia prosimy o kontakt z ' + self.rozlicz
+ '\n\nubezpieczenia-magro.pl/kalkulatorOC'))
print()
odnowienia = SMS()
odnowienia.read_excel()
odnowienia.select_cells()
odnowienia.wysyłka_aws()
end_time = time.time() - start_time
print('\nCzas wykonania: {:.0f} sekund'.format(end_time))
print('\n\n')
print('__________________________________')
# time.sleep(12)