Files
taxcom/GUI/app.py

132 lines
5.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()