Temat: Fakturomat

Witam!

O programach do prowadzenia księgowości/wystawiania faktur itp było już pisane tu i ówdzie. Minusem rozwiązań webowych był fakt, że program znajdował się na stronie autora. Osobiście nie mam zaufania do takiego rozwiązania. Napisałem więc aplikację, którą można spokojnie postawić na własnym serwerze a jeszcze lepiej na dysku lokalnym np. przy odpalonym XAMPPie.

Jest to dopiero pierwsza wersja programu, mogą być błędy (literówki) w helpie, niespójność nazw na podstronach i lekki bałagan w kodzie (zresztą mam specyficzny styl kodowania). Moje wymagania aplikacja spełnia, jest też dla mnie intuicyjny. Ale to oczywiste - jestem autorem :)

Z pewnością nie ma jeszcze wielu funkcjonalności, które są potrzebne innym. Stąd moja prośba o wszelkie uwagi, sugestie, nawet najdrobniejsze, które pozwolą rozwinąć program. Sprawdźcie idiotoodporność (na 100% coś przeoczyłem, chociaż sam dziury nie znalazłem).

Docelowo będę chciał go przepisać np. w C++, żeby można go było odpalić desktopowo, ale to daleka przyszłość :)

http://www.adesign.8p.pl/down/fakturomat.zip

Jak pisałem, najlepiej go uruchomić na localhoście ze względów bezpieczeństwa. Ponadto jeśli to konieczne, należy zezwolić na zapis w folderze "base" - tam są zapisywane pliki tekstowe (aplikacja nie korzysta z bazy danych). Więcej informacji w zakładce "O programie".

Z góry dzięki za pomoc!

konto usunięte

Temat: Fakturomat

Andrzej duży plus dla Ciebie!

Przesłałem moim programistom, jak będę mógł coś mądrego napisać, to skontaktuję się z Tobą przez priv.

Pozdrawiam,
D.

Temat: Fakturomat

Dzięki. Liczę na konstruktywne opinie :)
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: Fakturomat

hmm przegladnalem kod i dwie rzeczy rzucily mi sie w oczy:

1) moglbys lepiej odseparowac warstwy, bo podejrzewam ze mieszanie pozniej w tym kodzie bedzie upierdliwe ;)

2) Critical bug :P
nie podoba mi sie metodka Flush z klasy cData, mianowicie nie masz zadnego mechanizmu a'la mutex ktory chronilby plik przed jednoczesnym dostepem przez wiecej niz jeden proces, dodatkowo korzystasz z fwrite i nie flushujesz a wiec dane sa buforowane. Problem bedzie jak kilka requestow do aplikacji przyjdzie w praktycznie jednym momencie, w wyniku mozesz dostac siano w pliku a danym w srodku powiedziec bay bay :)

Temat: Fakturomat

Łukasz Cepowski:
hmm przegladnalem kod i dwie rzeczy rzucily mi sie w oczy:

1) moglbys lepiej odseparowac warstwy, bo podejrzewam ze mieszanie pozniej w tym kodzie bedzie upierdliwe ;)

Jak już pisałem, w kodzie jest bałagan - będę to szlifował.
2) Critical bug :P
nie podoba mi sie metodka Flush z klasy cData, mianowicie nie masz zadnego mechanizmu a'la mutex ktory chronilby plik przed jednoczesnym dostepem przez wiecej niz jeden proces, dodatkowo korzystasz z fwrite i nie flushujesz a wiec dane sa buforowane. Problem bedzie jak kilka requestow do aplikacji przyjdzie w praktycznie jednym momencie, w wyniku mozesz dostac siano w pliku a danym w srodku powiedziec bay bay :)

Jakich requestów? To aplikacja 1-stanowiskowa z założenia. Docelowo chciałbym, żeby była desktopowa (dlatego kiedyś pytałem o soft do konwersji PHP na EXE, ale testowane programy średnio mi działają). Ale póki co w PHP jestem sprawniejszy, dlatego użyłem tego języka :)
Na serwer się nie nadaje, bo nie ma żadnych zabezpieczeń ani szyfrowania danych.

W sumie dlatego też użyłem plików a nie bazy danych. Ma to być jak najbardziej przenośne. Wszystko masz w zasadzie w jednym miejscu.

Ale kod kodem. Nie on jest tu w tej chwili najważniejszy tylko raczej funkcjonalność. Czy freelancerzy z własną DG potrzebują jeszcze jakichś funkcjonalności? Na pewno nie ma faktury pro-forma czy zaliczkowej. Ale to dlatego, że sam nigdy tego nie potrzebowałem i zastanawiam się, jak to ugryźć :)

Za to mi osobiście bardzo przydaje się info o nieopłaconych fakturach. Klikam i od razu wiem, który klient sobie folguje ;)

Temat: Fakturomat

Fajnie się zapowiada.
Osobiście bardzo mi brakuje proformy (często wystawiam przy sprzedaży sprzętu lub oprogramowania), zaliczkową raczej mniej ale dla freelancerów dla usług była by chyba wskazana, duplikat czasami też się przydaje.

Co do braku bazy danych. Sam proponujesz XAMPPa to baza MySQL też tam jest.

Ogólnie trzymam kciuki i mogę wspierać jakimiś radami i pomocą.
Ostatnio ćwiczę vtigera ale dla mnie póki co jest to chyba zbyt duży kombajn i ma słabe wsparcie polskie :/

Temat: Fakturomat

Michał Żuk:
Fajnie się zapowiada.
Osobiście bardzo mi brakuje proformy (często wystawiam przy sprzedaży sprzętu lub oprogramowania), zaliczkową raczej mniej ale dla freelancerów dla usług była by chyba wskazana, duplikat czasami też się przydaje.

Dzięki. Będę nad tym myślał :)

Co do braku bazy danych. Sam proponujesz XAMPPa to baza MySQL też tam jest.

Wiem, ale jak pisałem, nie chcę z niej korzystać. Po prostu tutaj nie jest to potrzebne. Łatwiej mi zrobić backup danych (po prostu kopiuję pliki). No i ogólna przenośność.

Ogólnie trzymam kciuki i mogę wspierać jakimiś radami i pomocą.
Ostatnio ćwiczę vtigera ale dla mnie póki co jest to chyba zbyt duży kombajn i ma słabe wsparcie polskie :/

Dzięki. Będę się chwalił kolejnymi wersjami.
Piotr Krzyszkowski

Piotr Krzyszkowski Specjalista IT,
ALIOR BANK S.A.

Temat: Fakturomat

Bardzo mi się podoba prostota i łatwość obsługi.

Kod jest w miarę prosty, więc jeśli ktoś będzie chciał dodać nowe funkcjonalności lub coś poprawić to sobie powinien poradzić.

Duży plus za udostępnienie aplikacji.

konto usunięte

Temat: Fakturomat

Również i mi bardzo się podoba :-) Jeden mały błąd: gdy nie ma jeszcze żadnego klienta dodanego, a chce dodać fakturę to po prawej, gdzie jest lista klientów, wyskakuje error (Warning: Invalid argument supplied for foreach() in C:\usr\apache\httpd\Fakturomat\lib\cform.php on line 63). Można by dać coś w stylu: brak klientów.

Życzę powodzenia w dalszym rozwijaniu :)

Temat: Fakturomat

Kamil Brenk:
Również i mi bardzo się podoba :-) Jeden mały błąd: gdy nie ma jeszcze żadnego klienta dodanego, a chce dodać fakturę to po prawej, gdzie jest lista klientów, wyskakuje error (Warning: Invalid argument supplied for foreach() in C:\usr\apache\httpd\Fakturomat\lib\cform.php on line 63). Można by dać coś w stylu: brak klientów.

Życzę powodzenia w dalszym rozwijaniu :)

Dzięki wielkie. O takie uwagi mi właśnie chodziło.

Nie zauważyłem, bo pierwsze co zrobiłem, to dodałem klientów :)
Myślę, że po prostu zablokuję dodawanie faktur - zamiast buttona zrobię info o braku klientów i link do zakładki KLIENCI :)

konto usunięte

Temat: Fakturomat

Andrzej K.:
Co do braku bazy danych. Sam proponujesz XAMPPa to baza MySQL też tam jest.

Wiem, ale jak pisałem, nie chcę z niej korzystać. Po prostu tutaj nie jest to potrzebne. Łatwiej mi zrobić backup danych (po prostu kopiuję pliki). No i ogólna przenośność.

masz silniki plikowych baz danych np. SQLLite więc nie ma problemu z backupem danych i koniecznością instalowania MySQL-aPrzemysław R. edytował(a) ten post dnia 26.10.10 o godzinie 14:32
Krystian Rożewicz

Krystian Rożewicz Admin. /
Programista PHP

Temat: Fakturomat

Jeśli poszukujesz beta-testera to się na niego pisze, bo Fakturomat jest ciekawym projektem...
Fakt, pro-forma się przydaje :) Możesz ewentualnie dodać możliwość ustalenia dodatkowych wartości podatku... Rząd chce podnieść stopę podatku, więc by się to też przydało, chyba, że zamierzasz dodać nową stopę wraz z nowymi edycjami strony.
Ciekawą rzeczą byłoby możliwość dodania klienta wraz z wypełnianiem danych faktury...

Pojawił mi się błąd, że wygenerowane faktury są puste (tylko ramki się potworzyły)...
Jakieś dodatkowe rozszerzenia powinienem włączyć oprócz php_pdf ?

Temat: Fakturomat

Przemysław R.:
Andrzej K.:
Co do braku bazy danych. Sam proponujesz XAMPPa to baza MySQL też tam jest.

Wiem, ale jak pisałem, nie chcę z niej korzystać. Po prostu tutaj nie jest to potrzebne. Łatwiej mi zrobić backup danych (po prostu kopiuję pliki). No i ogólna przenośność.

masz silniki plikowych baz danych np. SQLLite więc nie ma problemu z backupem danych i koniecznością instalowania MySQL-aPrzemysław R. edytował(a) ten post dnia 26.10.10 o godzinie 14:32

Zgadza się tylko tutaj to raczej sztuka dla sztuki. Wiesz można też argumentować, że niepotrzebnie pisałem wszystko od zera (pomijając bibliotekę TCPPDF), mogłem skorzystać z jakiegoś Frameworka i tylko go obudować. Ale jeśli ktoś zamiast XAMPPa odpali coś innego, co nie ma zaimplementowanej bazy tylko środowisko PHP, to już będzie problem. Najchętniej w ogóle bym to zrobił bez PHP, ale potrzebowałem możliwości zapisu plików. Kiedyś myślałem, żeby edytować pliki JS ale na dłuższą metę coś by mnie trafiło.

Niemniej zapewne bez SQLLite się nie obejdzie jak będę przepisywał to w C++. Ale do tego jeszcze droga daleka ;)

Temat: Fakturomat

Krystian Rożewicz:
Jeśli poszukujesz beta-testera to się na niego pisze, bo Fakturomat jest ciekawym projektem...

Dzięki :)
Fakt, pro-forma się przydaje :) Możesz ewentualnie dodać możliwość ustalenia dodatkowych wartości podatku...

Jak rząd go wprowadzi, to dodam (raczej zmienię, bo 22 przejdzie w 23). Ostatecznie to tylko jedna pozycja w tablicy.

Ciekawą rzeczą byłoby możliwość dodania klienta wraz z wypełnianiem danych faktury...

Myślałem o tym, ale to trzeba by zrobić na Ajaxie a staram się go ograniczać. Problem z aplikacjami webowymi jest taki, że są bezstanowe. Ale spróbuję coś wymyślić :)

Pojawił mi się błąd, że wygenerowane faktury są puste (tylko ramki się potworzyły)...

Hmm... Ciekawe. A podgląd faktury w HTMLu jest OK?
Możesz mi podesłać na priva zrzut ekranu i pliki z folderu "base"? Stawiam na jakiś błąd w pliku danych.
Jakieś dodatkowe rozszerzenia powinienem włączyć oprócz php_pdf ?

Nie. PDFy są tworzone przez bibliotekę TCPPDF, która jest dołączona (z tym, że mocno odchudzona z komentarzy, co jest pewnie niezgodne z licencją, ale mocno odchudza kod - w wersji ostatecznej dołączę oryginalny plik).

konto usunięte

Temat: Fakturomat

sory nie mogłem się powstrzymać

wykonanie podobnej zabawki w Accessie ~ kilka godzin klikania w kreatorach z wszelakimi gadżetami - wypełnianie formularzy itp, itd

koszt środowiska 518 zł (http://www.xnet.pl/microsoft/?podgrupa=Access)

koszt runtime - 0 zł -> możliwość wykonania pliku exe

od wersji 2007 Access robi może robić pliki PDF

:PPrzemysław R. edytował(a) ten post dnia 26.10.10 o godzinie 15:15

Temat: Fakturomat

Przemysław R.:
sory nie mogłem się powstrzymać

wykonanie podobnej zabawki w Accessie ~ kilka godzin klikania w kreatorach z wszelakimi gadżetami - wypełnianie formularzy itp, itd

Heh, próbowałem coś takiego zrobić w Base (OpenOffice), ale mi nie wyszło. Do niedawna więc grzebałem się z plikami Calca.


koszt środowiska 518 zł (http://www.xnet.pl/microsoft/?podgrupa=Access)

koszt runtime - 0 zł -> możliwość wykonania pliku exe

Czy ten EXE będzie działał samodzielnie?

od wersji 2007 Access robi może robić pliki PDF

No i super. Można też w C++ (zamierzam), C#, Javie oraz róznych programach typu Access. Ja zrobiłem w PHP i co z tego? ;)

Jest też dużo gotowych programów do takich zadań, wcale nie jestem pionierem. Sęk w tym, że przetestowałem ich całkiem sporo (i free i dema i triale) i jakoś żaden mi nie podszedł.

Ale jeśli napiszesz go w Accesie to wcale się nie obrażę, zwłaszcza jeśli będzie spełniał moje potrzeby (nie takie znów wielkie) i będzie prosty w obsłudze.

konto usunięte

Temat: Fakturomat

Andrzej K.:
Przemysław R.:
sory nie mogłem się powstrzymać

wykonanie podobnej zabawki w Accessie ~ kilka godzin klikania w kreatorach z wszelakimi gadżetami - wypełnianie formularzy itp, itd

Heh, próbowałem coś takiego zrobić w Base (OpenOffice), ale mi nie wyszło. Do niedawna więc grzebałem się z plikami Calca.

base to drewno, daleko mu do MS Access 97, a to już parę lat ma

koszt środowiska 518 zł (http://www.xnet.pl/microsoft/?podgrupa=Access)

koszt runtime - 0 zł -> możliwość wykonania pliku exe

Czy ten EXE będzie działał samodzielnie?

tak

od wersji 2007 Access robi może robić pliki PDF

No i super. Można też w C++ (zamierzam), C#, Javie oraz róznych programach typu Access. Ja zrobiłem w PHP i co z tego? ;)

trochę nieodpowiednia technologia do tego zadania

dokładnie tak samo bym powiedział jakby ktoś probował za pomocą VBA sterować czajnikiem za pomocą RS232 - da się tylko to trochę mało wygodne
Jest też dużo gotowych programów do takich zadań, wcale nie jestem pionierem. Sęk w tym, że przetestowałem ich całkiem sporo (i free i dema i triale) i jakoś żaden mi nie podszedł.

Ale jeśli napiszesz go w Accesie to wcale się nie obrażę, zwłaszcza jeśli będzie spełniał moje potrzeby (nie takie znów wielkie) i będzie prosty w obsłudze.

znajdę chwile to napiszę, mi też się taki cuś przyda

Temat: Fakturomat

Przemysław R.:
base to drewno, daleko mu do MS Access 97, a to już parę lat ma

Zgadzam się.
No i super. Można też w C++ (zamierzam), C#, Javie oraz róznych programach typu Access. Ja zrobiłem w PHP i co z tego? ;)

trochę nieodpowiednia technologia do tego zadania

Wybrałem ją z jednego prostego powodu. Całe GUI zrobiłem w HTMLu i mogłem skupić się tylko na silniku. Ale zdaję sobie sprawę z niedoskonałości: szybkość (raczej wolność) działania, no i wymaga interpretera PHP.

dokładnie tak samo bym powiedział jakby ktoś probował za pomocą VBA sterować czajnikiem za pomocą RS232 - da się tylko to trochę mało wygodne

Odnoszę wrażenie, że na siłę szukasz dziury w całym. Jeśli ktoś dobrze zna VBA a nie zna innych technologii, to w VBA zrobi to szybciej i lepiej niz miałby kombinować z czymś innym.

Nie bronię swojego wyboru. Zgadzam się, że do tego najlepszy byłby Access, ale nie mam Office'a i nie potrzebuję do kupować do tego jednego zadania. A w "drewnie" jak to określiłeś, nie dało się tego zrobić. Stąd wybór padł na to, co umiem najlepiej :)

Ale jeśli napiszesz go w Accesie to wcale się nie obrażę, zwłaszcza jeśli będzie spełniał moje potrzeby (nie takie znów wielkie) i będzie prosty w obsłudze.

znajdę chwile to napiszę, mi też się taki cuś przyda

Trzymam za słowo.

konto usunięte

Temat: Fakturomat

Andrzej K.:
dokładnie tak samo bym powiedział jakby ktoś probował za pomocą VBA sterować czajnikiem za pomocą RS232 - da się tylko to trochę mało wygodne

Odnoszę wrażenie, że na siłę szukasz dziury w całym. Jeśli ktoś dobrze zna VBA a nie zna innych technologii, to w VBA zrobi to szybciej i lepiej niz miałby kombinować z czymś innym.

to nie szukanie dziury, wiem tylko że Access ma szereg mechanizmów ułatwiających pracę np. bindowanie formularzy z tabelami

podobne mechanizmy można też odnaleźć w takim C# express lub VB.NET express które notabene są za darmo i obsługują wszystko co powinny
Nie bronię swojego wyboru. Zgadzam się, że do tego najlepszy byłby Access, ale nie mam Office'a i nie potrzebuję do kupować do tego jednego zadania. A w "drewnie" jak to określiłeś, nie dało się tego zrobić. Stąd wybór padł na to, co umiem najlepiej :)

wybór trafny, jeżeli tą technologię czujesz to zadanie wykonasz
jeżeli chcesz to rozbudowywać w kierunku desktopowym to może zastanowić się nad zmianą technologii zanim narobisz się przy projekcie na bardziej desktopową

konto usunięte

Temat: Fakturomat

Andrzej K.:
Docelowo będę chciał go przepisać np. w C++, żeby można go było odpalić desktopowo, ale to daleka przyszłość :)

W c++? Będzie wielo-platformowy czy tylko dla win ?
Może w AIR aby na wszystkie platformy?

Btw. dzięki za programik później się nim pobawię :)



Wyślij zaproszenie do