132 lines
5.9 KiB
Python
132 lines
5.9 KiB
Python
import tkinter as tk
|
||
from tkcalendar import DateEntry
|
||
from datetime import datetime
|
||
import json, requests
|
||
|
||
# Функция обработки выбора варианта
|
||
def on_select():
|
||
global ID
|
||
selected_value = var.get()
|
||
|
||
# Варианты значений для разных выборов
|
||
values = {
|
||
1: [('7381440800374463','ad06d608-b690-11ed-87bd-0cc47ab40806','Самара_Кирова_виваленде')],
|
||
2: [('9961440300763405','030c75c2-2f29-11eb-119f-0cc47ab40806','Волгоград_Энгельса')],
|
||
3: [('9961440300902043','d4fff292-2f2a-11eb-119f-0cc47ab40806','Волжский_Ленина')],
|
||
4: [('7381440900835933','ee3baf4d-d98d-11e6-b191-e83935b036c7','Новороссийск')],
|
||
5: [('9961440300902580','33bbe69c-2f2b-11eb-119f-0cc47ab40806','Камышин_Некрасова')],
|
||
6: [('7381440900836108','b50bc5a3-12e1-11e5-9265-e83935b036c7','Краснодар_Привокзальная')],
|
||
7: [('9961440300515155','e33636ce-2f29-11eb-119f-0cc47ab40806','Волгоград_Авиаторов')],
|
||
8: [('7381440900834264','691807dd-2629-11e9-993e-f06a44526bea','Волгоград_Еременко')],
|
||
9: [('9961440300902408','13f3b7e6-2f2a-11eb-119f-0cc47ab40806','Волгоград_Аллея_Героев')],
|
||
10: [('7381440900836042','147c9228-3d13-11ef-94eb-8a456ecaea20','Крымск_Синева')]
|
||
}
|
||
|
||
if selected_value in values:
|
||
ID = values[selected_value]
|
||
execute_logic()
|
||
else:
|
||
result_label.config(text="Ошибка! Не выбран вариант.")
|
||
|
||
# Логика программы (пример)
|
||
def execute_logic():
|
||
CurDate = date_entry.get_date().strftime('%Y-%m-%d')
|
||
message = f'Выбранная дата: {CurDate}\nЗначение ID: {ID[0][1]}'
|
||
result_label.config(text=message)
|
||
print(ID[0])
|
||
taxcom = ID[0]
|
||
fn = taxcom[0]
|
||
salepoint = taxcom[1]
|
||
data = {"salepoint": salepoint}
|
||
data = json.dumps(data, ensure_ascii=False).encode('utf8')
|
||
# result = requests.post('https://1c.maverik.ru/bso_maverik/hs/exchange/GetTaxcomCredentials', data=data, verify=False, allow_redirects=False, auth=('robot', 's38*Cqy2L*PB'))
|
||
print(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}"
|
||
}
|
||
print('Autorezation')
|
||
print(result.text)
|
||
try:
|
||
print('check 1')
|
||
result = requests.get(f"https://api-lk-ofd.taxcom.ru/API/v2/ShiftList?fn={fn}&begin={CurDate}T00:00:00&end={CurDate}T23:59:59", headers=headers, timeout=(20, 240))
|
||
print(result.text)
|
||
shiftNumber = result.json()['records'][0]['shiftNumber']
|
||
fnFactoryNumber = result.json()['records'][0]['fnFactoryNumber']
|
||
except Exception as e:
|
||
print(e)
|
||
if manual_entry.get():
|
||
shiftNumber = manual_entry.get()
|
||
print('Номер смены: ', shiftNumber)
|
||
result = requests.get(f'https://api-lk-ofd.taxcom.ru/API/v2/DocumentList?fn={fn}&shift={shiftNumber}&type=3', headers=headers, timeout=(20, 240))
|
||
# result = requests.get(f'https://api-lk-ofd.taxcom.ru/API/v2/DocumentList?fn={fn}&shift=127&type=3', headers=headers, timeout=(20, 240))
|
||
cheks = result.json()['records']
|
||
print(cheks)
|
||
data = {"salepoint": salepoint,
|
||
"res": str(cheks)}
|
||
data = json.dumps(data, ensure_ascii=False).encode('utf-8')
|
||
print('54')
|
||
# print(ID[0])
|
||
result = requests.post('https://1c.maverik.ru/bso_maverik/hs/exchange/saveTaxcomDocs', data=data, allow_redirects=False, auth=('robot', 's38*Cqy2L*PB'))
|
||
print(result.text)
|
||
print(fn, salepoint, taxcom[2])
|
||
result_1c_label.config(text=f"Результата: {result.text}")
|
||
|
||
# Создание окна приложения
|
||
root = tk.Tk()
|
||
root.title("Загрузка чеков ИП")
|
||
root.geometry("400x450")
|
||
|
||
# Выбор даты
|
||
tk.Label(root, text='Выберите дату:').pack(pady=10)
|
||
# date_entry = DateEntry(root, selectmode='day', year=2025, month=5, day=15)
|
||
date_entry = DateEntry(root)
|
||
date_entry.pack(pady=10)
|
||
|
||
label_manual = tk.Label(root, text="Ручной ввод смены:")
|
||
# label_manual.pack(pady=15)
|
||
# label_manual.pack(fill=['none', '0', '20', 'both'])
|
||
label_manual.pack(fill='both')
|
||
manual_entry = tk.Entry(root)
|
||
manual_entry.pack(pady=0)
|
||
print(manual_entry)
|
||
|
||
# Переменная для хранения выбранного варианта
|
||
var = tk.IntVar()
|
||
|
||
# Список радиокнопок для выбора варианта
|
||
options = [
|
||
("Самара_Кирова_виваленде", 1),
|
||
("Волгоград_Энгельса", 2),
|
||
("Волжский_Ленина", 3),
|
||
("Новороссийск", 4),
|
||
("Камышин_Некрасова", 5),
|
||
("Краснодар_Привокзальная", 6),
|
||
("Волгоград_Авиаторов", 7),
|
||
("Волгоград_Еременко", 8),
|
||
("Волгоград_Аллея_Героев", 9),
|
||
("Крымск_Синева", 10)
|
||
]
|
||
for option_text, value in options:
|
||
tk.Radiobutton(root, text=option_text, variable=var, value=value, command=on_select).pack(anchor=tk.W)
|
||
|
||
|
||
# Метка результата
|
||
result_label = tk.Label(root, text='', font=('Arial', 12))
|
||
result_label.pack(pady=0)
|
||
|
||
# Метка результата
|
||
result_1c_label = tk.Label(root, text='', font=('Arial', 12))
|
||
result_1c_label.pack(pady=0)
|
||
|
||
root.mainloop() |