Skip to content

Совмещение(~200К с каждой стороны) 2 видов(не знакомых визави) коммунальных квитанций от различных организаций

press-magvoda-ru/a1

Repository files navigation

https://github.com/press-magvoda-ru/a1/blob/mainOfdyt/splitingOfMandV.py

(проект в стадии интенсивного прихорашивания)

заплатка v.0.0.0 :

Раньше:

две отдельные A и B коммунальные организации изготовив наборы pdf файлов квитанций видаА и видаB соответсвенно печатали у печатника P и "рассылали" своим потребителям посредстом службы доставки S

С splitingOfMandV.exe:

программа по возможности совмещает на один лист страницы квитанций(полученые в виде как раньше получал печатник P) от A и B адрессованные одному потребителю и полученные наборы отправляет печатнику P в печать для дальнейшей "разноски" по потребителям доставщиком S

всё элементарно при игнорировании нюансов существующих реализаций :

нюансы реализации :

на входе 2 дерева файлов с готовыми на печать пачками квитанций в pdf виде

пачки и структура окаменевшее унаследованное

на выходе - совмещение квитанций относящихся(«по возможности») к одному получателю на один лист(на обе стороны) (входные квитанции на страницах - если потребуется можно сжать(отдельные новые приседания) что бы совмещать от большего количества источников на один лист(upd: в одну «связку» одного-пары-тройки-листов)

переупорядочивание(основанное на порядке в пачках одного из деревьев) пачек для группировки и уменьшения «трения» осуществляемого физическими доставщиками (в пока «это не особо нужно» - переставить дома что бы порядок их обхода совпадал бы с их коротким физ обходом - коммивоеджер на минималках)- ща просто дома по возрастанию(цифр) их адреса на улице и квартир в домах - привычный доставщикам

ну и недостатистика - за всю эту экономию кто типо несёт издержки

как то так

зы:пет-проект актуализивался по мере перехода на безбумажные(электронные) квитанции - ибо стали рубить издержки на доставщиков имхо

главный( main.py) это splitingOfMandV.py

lst - это список для билда костыльным

Файл:~2distNxt.py :

import os, sys
p=os.path.abspath(sys.argv[0])
p=os.path.dirname(p)
a=list(os.walk(p))[0][1]
print(a)
b=f'{int(max(a))+1:02}'
os.makedirs(dst:=p+'\\'+b)
lst=open('lst','r').read().splitlines()
for fl in lst:
	f=f'copy  "{fl}" "{dst}"'
	print(f,':')
	os.system(f)

Файл(по факту вызов ~2distNxt.py полуручное):~makerDist.py:

from  rezname  import rezname
import os
pyuic5 guiForPairing.ui -o guiForPairing.py
~2distNxt.py to next
os.system(f'(tm&&pyinstaller splitingOfMandV.py  -n splitingOfMandV{rezname()} -c -F -i logo.ico&&tm)>o{rezname()}')

недо requirements.txt:

  • pymupdf для fitz
  • PyQt5 для гуя
  • openpyxl
  • pandas - саммый децл для кой какой статистики
  • собирать под 3.10-3.12(3.13 ...)
  • ...

зы - это набросок

About

Совмещение(~200К с каждой стороны) 2 видов(не знакомых визави) коммунальных квитанций от различных организаций

Resources

Stars

Watchers

Forks

Languages