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 →