При возникновении ошибок отправляются уведомления в RocketChat. Проверка доступности сервера 1С перед отправкой чеков.
This commit is contained in:
49
taxcom_ip.py
49
taxcom_ip.py
@ -14,6 +14,28 @@ def check_server(ip, port):
|
|||||||
return True
|
return True
|
||||||
except OSError:
|
except OSError:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def send_rocketchat_notification(text, proccess='Разобраться!'):
|
||||||
|
ROCKET_CHAT_WEBHOOK_URL = 'https://chat.maverik.ru/hooks/6881da844a6bb0ff6126fb0c/sQXCxLCrfNCtYumnWaEKbyqYvFhHSFCSevy8iBR3T2beP8j5'
|
||||||
|
data = {
|
||||||
|
"alias": "Чеки ИП",
|
||||||
|
"text": text,
|
||||||
|
"attachments": [
|
||||||
|
{
|
||||||
|
"text": proccess,
|
||||||
|
"color": "#5B34E7"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
headers = {'Content-Type': 'application/json'}
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = requests.post(ROCKET_CHAT_WEBHOOK_URL, json=data, headers=headers)
|
||||||
|
if response.status_code != 200:
|
||||||
|
print(f"Ошибка отправки уведомления: {response.text}")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Ошибка при отправке уведомления: {e}")
|
||||||
|
|
||||||
ID = [
|
ID = [
|
||||||
('7381440900800903','030c75c2-2f29-11eb-119f-0cc47ab40806','Волгоград_Энгельса'),
|
('7381440900800903','030c75c2-2f29-11eb-119f-0cc47ab40806','Волгоград_Энгельса'),
|
||||||
@ -51,8 +73,10 @@ while True:
|
|||||||
ic(result.text)
|
ic(result.text)
|
||||||
ic(sessionToken)
|
ic(sessionToken)
|
||||||
try:
|
try:
|
||||||
|
n = 0
|
||||||
result = requests.get(f"https://api-lk-ofd.taxcom.ru/API/v2/ShiftList?fn={fn}&begin={prevDate}T00:00:00&end={CurDate}T23:59:59", headers=headers, timeout=(20, 240))
|
result = requests.get(f"https://api-lk-ofd.taxcom.ru/API/v2/ShiftList?fn={fn}&begin={prevDate}T00:00:00&end={CurDate}T23:59:59", headers=headers, timeout=(20, 240))
|
||||||
for i in result.json()['records']:
|
for i in result.json()['records']:
|
||||||
|
n += 1
|
||||||
shiftNumber = i['shiftNumber']
|
shiftNumber = i['shiftNumber']
|
||||||
fnFactoryNumber = i['fnFactoryNumber']
|
fnFactoryNumber = i['fnFactoryNumber']
|
||||||
ic(result.text)
|
ic(result.text)
|
||||||
@ -62,17 +86,17 @@ while True:
|
|||||||
cheks = result.json()['records']
|
cheks = result.json()['records']
|
||||||
except:
|
except:
|
||||||
ic()
|
ic()
|
||||||
requests.get(f'https://api.telegram.org/bot5374522720:AAGoNUYCEyJ-7-bSAQPT7aV_W2GWcinnkQU/sendMessage?parse_mode=HTML&chat_id=394151541&text=<b>Taxcom:</b>\nЧека нет')
|
# requests.get(f'https://api.telegram.org/bot5374522720:AAGoNUYCEyJ-7-bSAQPT7aV_W2GWcinnkQU/sendMessage?parse_mode=HTML&chat_id=394151541&text=<b>Taxcom Maverik:</b>\nЧека нет')
|
||||||
continue
|
continue
|
||||||
with open('check', 'w', encoding='utf-8') as f:
|
with open(f'check_{n}', 'w', encoding='utf-8') as f:
|
||||||
f.write(str(cheks))
|
f.write(str(cheks))
|
||||||
if Path('check').is_file():
|
if Path(f'check_{n}').is_file():
|
||||||
if Path(kassa).is_file():
|
if Path(f'{kassa}_{n}').is_file():
|
||||||
if filecmp.cmp('check', kassa):
|
if filecmp.cmp(f'check_{n}', f'{kassa}_{n}'):
|
||||||
print(f'{kassa} -- Новые чеки отсутствуют')
|
print(f'{kassa} -- Новые чеки отсутствуют')
|
||||||
continue
|
continue
|
||||||
shutil.copy('check', kassa)
|
shutil.copy(f'check_{n}', f'{kassa}_{n}')
|
||||||
Path('check').unlink()
|
Path(f'check_{n}').unlink()
|
||||||
data = {"salepoint": salepoint,
|
data = {"salepoint": salepoint,
|
||||||
"res": str(cheks)}
|
"res": str(cheks)}
|
||||||
data = json.dumps(data, ensure_ascii=False).encode('utf-8')
|
data = json.dumps(data, ensure_ascii=False).encode('utf-8')
|
||||||
@ -82,18 +106,21 @@ while True:
|
|||||||
elif check_server('10.15.0.3', 80):
|
elif check_server('10.15.0.3', 80):
|
||||||
result = requests.post('http://10.15.0.3/bso_maverik/hs/exchange/saveTaxcomDocs', data=data, allow_redirects=False, auth=('robot', 's38*Cqy2L*PB'), timeout=(10, 120))
|
result = requests.post('http://10.15.0.3/bso_maverik/hs/exchange/saveTaxcomDocs', data=data, allow_redirects=False, auth=('robot', 's38*Cqy2L*PB'), timeout=(10, 120))
|
||||||
else:
|
else:
|
||||||
if Path(kassa).is_file():
|
if Path(f'{kassa}_{n}').is_file():
|
||||||
Path(kassa).unlink()
|
Path(f'{kassa}_{n}').unlink()
|
||||||
print('Ошибка загрузки чеков в 1С.\nСервер не доступен!\nЗагрузка повторится позже.')
|
print('Ошибка загрузки чеков в 1С.\nСервер не доступен!\nЗагрузка повторится позже.')
|
||||||
|
send_rocketchat_notification('Ошибка загрузки чеков в 1С.', 'Сервер 1С не доступен!\nПроверить нужно OVPN.\nЗагрузка повторится через 1 час.')
|
||||||
sleep(3600)
|
sleep(3600)
|
||||||
break
|
break
|
||||||
print(result.text)
|
print(result.text)
|
||||||
print('-----------------')
|
print('-----------------')
|
||||||
except:
|
except Exception as e:
|
||||||
|
send_rocketchat_notification('Ошибка чеков по ИП.', str(e))
|
||||||
continue
|
continue
|
||||||
print('#################')
|
print('#################')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
requests.get(f'https://api.telegram.org/bot5374522720:AAGoNUYCEyJ-7-bSAQPT7aV_W2GWcinnkQU/sendMessage?parse_mode=HTML&chat_id=394151541&text=<b>Taxcom:</b>\n{e}')
|
# requests.get(f'https://api.telegram.org/bot5374522720:AAGoNUYCEyJ-7-bSAQPT7aV_W2GWcinnkQU/sendMessage?parse_mode=HTML&chat_id=394151541&text=<b>Taxcom:</b>\n{e}')
|
||||||
|
send_rocketchat_notification('Ошибка чеков по ИП.', str(e))
|
||||||
|
|
||||||
print('#################')
|
print('#################')
|
||||||
print('#################')
|
print('#################')
|
||||||
|
|||||||
Reference in New Issue
Block a user