mirror of
https://github.com/Sea-Haven-Industries/stampli-bulk-editor.git
synced 2026-09-30 09:13:12 +00:00
Mac GUI app (tkinter + Playwright) for bulk-editing invoice pay dates on Stampli's Select to Pay dashboard. Features: - Scan MUI DataGrid rows via virtual scroll - Auto-calculate pay dates (due - 5 days, business day adjusted) - Bulk edit pay date cells via calendar input - Filter to error-free invoices, select all, submit for payment - Scan Pending Approval tab to verify edits - PyInstaller .app bundle with custom icon
74 lines
1.6 KiB
Python
74 lines
1.6 KiB
Python
# -*- mode: python ; coding: utf-8 -*-
|
|
import os
|
|
import sys
|
|
|
|
uv_python = os.path.realpath(os.path.join('venv', 'bin', 'python'))
|
|
uv_base = os.path.dirname(os.path.dirname(uv_python))
|
|
tcl_dir = os.path.join(uv_base, 'lib', 'tcl8.6')
|
|
tk_dir = os.path.join(uv_base, 'lib', 'tk8.6')
|
|
|
|
# Find playwright driver
|
|
import playwright
|
|
pw_dir = os.path.dirname(playwright.__file__)
|
|
pw_driver = os.path.join(pw_dir, 'driver')
|
|
|
|
a = Analysis(
|
|
['stampli_gui.py'],
|
|
pathex=[],
|
|
binaries=[],
|
|
datas=[
|
|
('stampli_core.py', '.'),
|
|
('app_icon.icns', '.'),
|
|
(tcl_dir, 'tcl8.6'),
|
|
(tk_dir, 'tk8.6'),
|
|
(pw_driver, 'playwright/driver'),
|
|
],
|
|
hiddenimports=['playwright', 'playwright.sync_api', 'greenlet'],
|
|
hookspath=[],
|
|
hooksconfig={},
|
|
runtime_hooks=[],
|
|
excludes=[],
|
|
noarchive=False,
|
|
)
|
|
|
|
pyz = PYZ(a.pure)
|
|
|
|
exe = EXE(
|
|
pyz,
|
|
a.scripts,
|
|
[],
|
|
exclude_binaries=True,
|
|
name='Stampli Bulk Editor',
|
|
debug=False,
|
|
bootloader_ignore_signals=False,
|
|
strip=False,
|
|
upx=False,
|
|
console=False,
|
|
target_arch='arm64',
|
|
icon='app_icon.icns',
|
|
)
|
|
|
|
coll = COLLECT(
|
|
exe,
|
|
a.binaries,
|
|
a.datas,
|
|
strip=False,
|
|
upx=False,
|
|
name='Stampli Bulk Editor',
|
|
)
|
|
|
|
app = BUNDLE(
|
|
coll,
|
|
name='Stampli Bulk Editor.app',
|
|
bundle_identifier='com.seahaven.stampli-bulk-editor',
|
|
icon='app_icon.icns',
|
|
info_plist={
|
|
'NSHighResolutionCapable': True,
|
|
'CFBundleShortVersionString': '1.0.0',
|
|
'CFBundleVersion': '1.0.0',
|
|
'LSEnvironment': {
|
|
'TCL_LIBRARY': '../Resources/tcl8.6',
|
|
'TK_LIBRARY': '../Resources/tk8.6',
|
|
},
|
|
},
|
|
)
|