From 0baec4f86983d0dd62ba61eddd79bb17e22a78b4 Mon Sep 17 00:00:00 2001 From: Andrey Seligenenko Date: Thu, 3 Jul 2025 11:37:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=87=D0=B5=D0=BA=D0=BE=D0=B2=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D0=A2=D0=B0=D0=BA=D1=81=D0=9A=D0=BE=D0=BC=20=D0=B8=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B0=20=D0=B8=D1=85=20?= =?UTF-8?q?=D0=B2=201=D0=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- taxcom.py | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 taxcom.py diff --git a/taxcom.py b/taxcom.py new file mode 100644 index 0000000..86ca404 --- /dev/null +++ b/taxcom.py @@ -0,0 +1,89 @@ +import json, filecmp, shutil, requests +from datetime import datetime +from pathlib import Path +from time import sleep +from icecream import ic + +ic.disable() + +ID = [ ('9961440300763405','030c75c2-2f29-11eb-119f-0cc47ab40806','Волгоград_Энгельса'), + ('9961440300902043','d4fff292-2f2a-11eb-119f-0cc47ab40806','Волжский_Ленина'), + #Смена ФН ('9961440300763218','ee3baf4d-d98d-11e6-b191-e83935b036c7','Новороссийск'), + ('7381440900835933','ee3baf4d-d98d-11e6-b191-e83935b036c7','Новороссийск'), + #Смена ФН ('9961440300757955','147c9228-3d13-11ef-94eb-8a456ecaea20','Крымск_Синева'), + ('7381440900836042','147c9228-3d13-11ef-94eb-8a456ecaea20','Крымск_Синева'), + ('9961440300902580','33bbe69c-2f2b-11eb-119f-0cc47ab40806','Камышин_Некрасова'), + #Исправлен ID ('9961440300763398','b4280c16-2629-11e9-993e-f06a44526bea','Краснодар_Привокзальная'), + ('7381440900836108','b50bc5a3-12e1-11e5-9265-e83935b036c7','Краснодар_Привокзальная'), + #Закрыто ('9961440300757958','b50bc59a-12e1-11e5-9265-e83935b036c7','Новошахтинск_Ленина'), + ('9961440300515155','e33636ce-2f29-11eb-119f-0cc47ab40806','Волгоград_Авиаторов'), + #Смена ФН ('9961440300763613','691807dd-2629-11e9-993e-f06a44526bea','Волгоград_Еременко'), + ('7381440900834264','691807dd-2629-11e9-993e-f06a44526bea','Волгоград_Еременко'), + #Закрыто ('9961440300763285','b4280c16-2629-11e9-993e-f06a44526bea','Волжский_Мира'), + #Закрыто ('9961440300763668','7c52db0c-2629-11e9-993e-f06a44526bea','Волгоград_Рабоче_Крестьянская'), + ('9961440300902408','13f3b7e6-2f2a-11eb-119f-0cc47ab40806','Волгоград_Аллея_Героев'), + ('7381440800374463','ad06d608-b690-11ed-87bd-0cc47ab40806','Самара_Кирова_виваленде') +] + +while True: + CurDate = datetime.date(datetime.now()) + prevDate = datetime.date(datetime.now()) + try: + for fn, salepoint, kassa in ID: + ic(fn, salepoint) + headers = { + "Content-Type": "application/json", + "Integrator-ID": "BFFFC47E-38BB-4845-8399-7C2F5AB11A3C" + } + data = { + "Login": "kassa@ip-tr.ru", + "Password": "123456" + } + result = requests.post('https://api-lk-ofd.taxcom.ru/API/v2/Login', headers=headers, data=json.dumps(data), timeout=(20, 240)) + sessionToken = result.json()['sessionToken'] + headers = { + "Content-Type":"application/json", + "Session-Token": f"{sessionToken}" + } + ic(result.text) + ic(sessionToken) + try: + 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)) + shiftNumber = result.json()['records'][0]['shiftNumber'] + fnFactoryNumber = result.json()['records'][0]['fnFactoryNumber'] + ic(result.text) + except: + ic() + continue + try: + result = requests.get(f'https://api-lk-ofd.taxcom.ru/API/v2/DocumentList?fn={fn}&shift={shiftNumber}&type=3', headers=headers, timeout=(20, 240)) + ic(result.text) + cheks = result.json()['records'] + except: + ic() + requests.get(f'https://api.telegram.org/bot5374522720:AAGoNUYCEyJ-7-bSAQPT7aV_W2GWcinnkQU/sendMessage?parse_mode=HTML&chat_id=394151541&text=Taxcom:\nЧека нет') + continue + with open('check', 'w', encoding='utf-8') as f: + f.write(str(cheks)) + if Path('check').is_file(): + if Path(kassa).is_file(): + if filecmp.cmp('check', kassa): + print(f'{kassa} -- Новые чеки отсутствуют') + continue + shutil.copy('check', kassa) + Path('check').unlink() + data = {"salepoint": salepoint, + "res": str(cheks)} + data = json.dumps(data, ensure_ascii=False).encode('utf-8') + print(kassa) + result = requests.post('https://1c.maverik.ru/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)) + print(result.text) + print('#################') + except Exception as e: + requests.get(f'https://api.telegram.org/bot5374522720:AAGoNUYCEyJ-7-bSAQPT7aV_W2GWcinnkQU/sendMessage?parse_mode=HTML&chat_id=394151541&text=Taxcom:\n{e}') + + print('#################') + print('#################') + print('#################') + sleep(120) \ No newline at end of file