Jak zrobić umowy w programie od sensownej strony ?

0

Witam.

Przychodzę z tematem umów. Aplikacja webowa w php. Użytkownik aplikacji dodaje klienta i po wpisaniu danych ma mu się wygenerować umowa w pdf, którą można wydrukować i podpisać. Tyle w temacie. Zadanie jest proste ale owocuje to kilkoma pytaniami z mojej strony, które zaraz opisze.

Funkcja w systemie oferuje użycie domyślnej umowy skomponowanej przez prawnika i każdy użytkownik może z niej skorzystać. Ale może wgrać swoją wersję jako plik Word gdzie musi oczywiście w odpowiednich polach dodać coś na zasadzie Shortcode[data] [company_name] [client_name] i to później ja pobieram treść tego Worda, zamieniam na dane i generuje pdf z tymi zmianami, który się ściąga.

  1. Dodałem swój plik do bazy danych pole BLOB, nie wiem czy to dobrze chociaż przy jednym pliku nie powinno być problemu.
  2. Jeśli zmieni się kiedyś umowa na nową, czyli użytkownik po jakimś czasie wgra nowy plik worda, to umowa z klientami wstecz powinna być pokazywana stara. Jak przechowywać takie umowy ? Czy też dawać do bazy, czy w pliku na serwerze czy zrobić np Bucket na AWS S3 i tam wrzucać wszystkie dokumenty użytkownika.
  3. Każdy użytkownik ma 1GB miejsca na tym S3 ale nie wiem czy umowy z klientami powinny być po mojej stronie czy ładować to na dysk ten klienta , bo jeśli mu się skończy pojemność to będzie miał pretensje, że nie może tworzyć nowych umów.

No i takie właśnie rozkminy co tu zrobić

3

Jeśli nie ma innych przeciwwskazań, ja bym pliki trzymał w plikach, a w bazie danych tylko ich ścieżki. Nie wiem, może teraz inna moda (stary jestem, kiedyś tak się robiło), ale ma to tę zaletę, że jakby co, to masz dostęp do fizycznych plików bez pośrednictwa bazy danych... Sam wzór umowy też bym pewnie trzymał w pliku.

Co do trzymania archiwum -- nie bardzo rozumiem z Twojego opisu jakie są strony użytkowników? Ty i klienci? Czy jeszcze ktoś trzeci...? Jakiś użytkownik? Więc nie wiem na czyją quotę ma wejść umowa archiwalna w tej sytuacji...

0

Strony użytkowników to na zasadzie, że ty się rejestrujesz w tej aplikacji i przychodzi do ciebie klient np chce, żebyś mu coś wykonał. I generujesz umowę-zelcenie z tym klientem. Dodajesz go do bazy i drukujesz umowę. i jak za rok coś klient by sie odezwał to podglądasz umowę i wiesz co było kiedyś, bo może teraz masz nowe umowy. Jakoś tak wymyśliłem.

Plik zajmuje około 25Kb i wymyśliłem, że nie będę trzymał kopii plików dla każdego z nich tylko jeśli użytkownik wgra swój plik z umową i ten plik zostanie użyty przynajmniej raz to zapisze go sobie jako szablon i będę generował umowy na jego podstawie. Jak mi klient za 2 miesiące wgra inny plik, to wtedy jak go użyje to znowu zapisze szablon. W ten sposób zamiast trzymać 120 plików w PDF które zajmują po 2 MB kazdy to będę miał 2 pliki które zajmują 50Kb w wordzie i jak będę potrzebował wydrukować umowę to wygeneruje pdfa

Oooo widzisz, kurde, elegancko. Dzięki rzucenie światła :)

3

Jaki silnik bazy? Bo np. SQL server ma coś takiego jak filestream : https://docs.microsoft.com/en-us/sql/relational-databases/blob/filestream-sql-server?view=sql-server-ver15

1 użytkowników online, w tym zalogowanych: 0, gości: 1