def ibanCheck(iban):
if len(iban)!=28:
return False
else:
return int("".join([x if x in "0123456789" else str(ord(x)-55) for x in iban[4:]+iban[:4]]))%97==1
Дублирование записи в DBF (_e_writeData)
if mem.scname=="spr_cln":
dic=mem.dbData
if mem.editMode=="EDIT":
updateDbf("""d:/TEMP/RST/PENTA/BASE/spr_adr.DBF""",dic,{'klient':dic['CLN']})
else:
dic['KLIENT']=dic['CLN']
appendDbf("""d:/TEMP/RST/PENTA/BASE/spr_adr.DBF""",dic)
del dic
Получить список дисков (обращение kernel)
def get_drives(): import string from ctypes import windll drives = [] bitmask = windll.kernel32.GetLogicalDrives() for letter in string.uppercase: if bitmask & 1: drives.append(letter) bitmask >>= 1 return drives print get_drives()
Выгрузка пакета
packprefix="_pss"
path=QFileDialog.getExistingDirectory(None, u"Выберите папку для выгрузки файла %s.sqlite" % packprefix, "\\")
if path:
MyApp.scBrowser.saveProg("%s\\%s.sqlite" % (path, packprefix), prefix=packprefix)
Проверка УНП по государственному реестру плательщиков
В справочнике организаций добавлена функция проверки УНП по государственному реестру плательщиков Республики Беларусь.
Парсинг mysqldump на отдельные БД
Если размер дампа небольшой: Если файл очень большой:
Скачать архив из сети и извлечь файлы
if not glob.glob("yoksel.exe"):
if zzAskYN(u"Файл YOKSEL.EXE не найден! Загрузить из интернета?")==2:
try:
downloadFromSite("https://sourceforge.net/projects/yoksel/files/latest/download?source=files","yoksel.zip")
zip=zipfile.ZipFile(u"yoksel.zip")
for x in zip.namelist():
if x.lower()=='yoksel.exe':
zip.extract(x)
zip.close()
except:
zzMess(u"Загрузка не удалась!!")
Загрузка данных из другой БД
tmpDb=pentadb.pentaBase(name="oesf",driver="QMYSQL",database="esf_data",\
host="srv-penta",user="username",password="userpass")
if tmpDb.db:
transaction()
for x in zzCursor("select * from amko_ttn",tmpDb).zzRecords(1):
if gi("amko_ttn","uid",x['UID'],'uid')!=x['UID']:
insert("amko_ttn",x)
else:
update("amko_ttn",x)
commit()
tmpDb=None
Автоматическая авторизация
Добавлена возможность автоматической авторизации доступа к контейнеру личных ключей на USB-носителе. Пароль доступа вводится один раз, при первом после запуска программы обращении к к контейнеру. В дальнейшем нужно только подтверждать Continue Reading →