Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [wolontariat] Pomoc przy skrypcie
Forum PHP.pl > Inne > Giełda ofert > Poszukuję
maxbartko
Witam. Napisałem z pomocą wujka googla system płatności dla mojej firmy.
Nie znam się dobrze na php i utknąłem z jednym problemem.
Skrypt ma służyć do wprowadzania wpłat zrobionych przez klienta,gdyż za dużo jest już ich i stara metoda zapisywania wpłat na kartce już się nie sprawdza.
Klient mi płaci za neta a ja mu drukuję kod wygenerowany w moim skrypcie.
Klient loguje się na stronie www i wpisuje dany kod. kod po wpisaniu przypisywany jest do klienta z bieżącą datą.
Zrobiłem generator 10 znakowych kodów które zapisywane są w bazie danych,
kody nie powtarzają się, do tego dodałem system logowania.
Działa też przypisywanie kodu do klienta.

Teraz mam problem bo nie wiem jak to zrobić:
Chcę aby klient mógł zobaczyć swoje wszystkie wpłaty w danym roku.
Rejestrując się w programie klient np w grudniu 2011, pierwszą wpłatę ma dokonać dopiero w styczniu 2012.
Jak zrobić że np pierwszy miesiąc płatny jest styczeń a np pierwszą wpłatę klient zrobi w marcu, skąd system będzie wiedział że ta wpłata marcowa ma być przypisana do stycznia a następna już do lutego.
jak zrobić tabelkę np wszystkie wypisane miesiące a pod nimi np data wpisania kodu.
aktualnie moja baza wygląda tak:
  1. CREATE TABLE `kody` (
  2. `kody_id` int(11) NOT NULL AUTO_INCREMENT,
  3. `kody_kod` varchar(15) NOT NULL,
  4. `kody_uzyty` tinyint(1) NOT NULL,
  5. `kody_usera` varchar(30) NOT NULL,
  6. `kody_data_uzycia` varchar(10) NOT NULL,
  7. `kody_wydruk` tinyint(1) NOT NULL,
  8. UNIQUE KEY (`kody_id`)
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  10.  
  11. CREATE TABLE `uzytkownicy` (
  12. `id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
  13. `nick` VARCHAR( 32 ) NOT NULL ,
  14. `haslo` VARCHAR( 40 ) NOT NULL ,
  15. `email` VARCHAR( 40 ) NOT NULL ,
  16. `imie` VARCHAR( 40 ) NOT NULL ,
  17. `nazwisko` VARCHAR( 40 ) NOT NULL ,
  18. `adres` VARCHAR( 40 ) NOT NULL ,
  19. `nip2` VARCHAR( 13 ) NOT NULL ,
  20. `ip` VARCHAR( 20 ) NOT NULL ,
  21. `data` VARCHAR( 10 ) NOT NULL ,
  22. PRIMARY KEY ( `id` )
  23. );


Przesyłam szybki szkic tego co chce uzyskać.



to jest ta sam tabelka tylko po zmianie roku.
wiadomo, że nic nie ma za darmo więc możecie podsyłać swoją cenę na PW lub kontakt niżej.

Z góry dzięki za wszystkie podpowiedzi.
ps. kontakt. gg- 3889231 maxbartko@wp.pl
buliq
Sprawdzaj ciągłość wpłat. Np wyciągaj miesiąc poprzedniej płatności i zmieniaj miesiąc+1.
maxbartko
ok jeśli dobrze zrozumiałem to twój sposób ma wadę, gdy klient zapłaci kilka razy w jednym miesiącu lub przez kilka miesięcy nie płaci i nagle zapłaci za pół roku. najgorsze w tym jest to że nie wiem jak to mam zrobić w php ;[
markonix
A po co w ogóle ten kod?
Jak Ci ktoś zapłaci to po prostu dodajesz płatność i tyle?
Za jaki miesiąc płaci ustalasz przy dodawaniu, a żeby sobie uprościć domyślnie w tym polu będzie data ostatniej płatności + 1.
buliq
Max Twoja metodologia jest błędna. Sposób w jaki przedstawiłeś obecny system i to co chcesz zrobić naprowadził mnie na tor że klient może opłacić rachunek wcześniej lub później. Poza tym nie rozumiem zastosowania tego systemu? Najprościej byłoby każdemu klientowi unikalne id stałe przypisać, i w momencie płatności Ty zaznaczasz w bazie ze płatność była. Dlaczego użytkownik ma się jeszcze logować do systemu i wpisywać kod skoro już wiesz że zapłacił? Gdyby dostęp do internetu zależał od zawartości bazy danych (system sprawdzał by czy w bazie jest odpowiedni wpis dla użytkownika i odcinał neta jak nie ma płatności) i stosowałbyś te kody jako pre-paid to wtedy miałoby to sens.
maxbartko
klient płaci kiedy chce i nie tylko u mnie, bo aż w 5 punktach. sam wszystkiego nie ogarnę i dla mnie jest to ułatwienie jak klient sam wprowadzi płatność. o odcinanie neta tu nie chodzi tylko o wpłaty aby mnie trochę odciążyć zwłaszcza gdy teraz mam 2 firmy ma głowie ;[
buliq
Proponuję zatem usiąść na spokojnie przy stole, wyciągnąć kartkę papieru i napisać sobie co zrobić aby było to łatwiejsze. A następnie opisać wszystko krok po kroku.

BTW a jeżeli nie wpisze tej płatności to co się stanie? Prościej przeszkolić te 5 punktów i mieć pewność że będzie ok.
maxbartko
problem w tym, że te punkty są niezależne, gdyż ja mam swoją firmę jednoosobową a tamte to najczęściej sklepy rodziny. a tak dam im zapas kodów i klient płacąc dostaje kod i wpisuje, dzięki temu nie będzie trzeba latać z papierami (listami z podpisami). Każdy robi jak mu pasuje, mi tak pasuje i tego się będę trzymać. kartka mi nie jest potrzebna, dałem w pierwszym poście szkic tego co chce uzyskać, lecz nie wiem jak to zrobić pod php
markonix
Jeżeli nie zmienisz koncepcji to na moją pomoc nie licz - nie będzie pomagał przy tak nie przemyślanych sysystemach.

Trudniej jest wytłumaczyć 5 osobom że mają wejść pod link X i gdy ktoś zapłaci wypełnić prosty formularz, który do granic możliwości można uprościć (auto-uzupełnianie danych klienta, wybór miesiąca np. graficzne za pomocą X bądź okres OD : DO. Wszystko nie wymagające żadnej wiedzy. Znacznie lepszy pomysł niż tłumaczenie tym 5 osobom że muszą podawać jakieś kody klientom, a potem tłumaczyć klientowi że musi ten kod gdzieś tam wpisać..

Poza tym podpiąłbym płatności on-line dla chętnych klientów i wtedy kto by chciał płacił by przelewem i wszystko by szło z automatu.

Pisałeś w pierwszym poście, że jesteś w stanie zapłacić - chętnie Ci tę aplikację napiszę od nowa (baza, oskryptowanie, interfejs, płatności on-line)
maxbartko
skrypt ma być tylko do tego aby klient widział do kiedy ma zapłacone bo teraz nie zawsze wie i klient mnie wyręczy w papierkowej robocie.
a o przeszkolenie nie chodzi bo ja będę tylko drukował kody, kody nie mają być podczas wydruku przypisane do klienta.
te 5 punktów nie będą drukować tylko ja i im dam, oni mają tylko kase zabrać i wydać kod.
krystianroza
Mało kto pomaga już bez $ smile.gif
No, ale napisz skrypt nawet z błędami, a go poprawie...

Co do systemu rozpoczęcia rozliczania to możesz wykorzystać funkcję date() w php smile.gif
No, ale nie obędzie się bez jakiejś bazy klientów (kiedy mieli podpisaną umowę), bo musisz przeanalizować scenariusz , że klient zarejestruje się w Twoim skrypcie po kilku miesiącach od podpisania umowy smile.gif
maxbartko
Witam cię Krystian. kupe lat. można coś takiego zrobić lecz podczas montażu będę starał się rejestrować klienta, gdyż podczas rejestracji będzie się podawać dane jego, które później wykorzystam do faktur.
właśnie napisz... wszyscy tak mówią, jakbym wiedział jak napisać to bym na forum się nie pytał ;]
a druga sprawa to czas, którego nie mam bo na święta wszyscy na raz chcą mieć internet i ciągle jestem poza domem.
wiadomo, że wszystko kręci się wokół $$, tak było jest i będzie....
markonix
Cytat(maxbartko @ 22.12.2011, 09:28:08 ) *
skrypt ma być tylko do tego aby klient widział do kiedy ma zapłacone bo teraz nie zawsze wie i klient mnie wyręczy w papierkowej robocie.
a o przeszkolenie nie chodzi bo ja będę tylko drukował kody, kody nie mają być podczas wydruku przypisane do klienta.
te 5 punktów nie będą drukować tylko ja i im dam, oni mają tylko kase zabrać i wydać kod.

W jaki sposób klient wie do kiedy ma zapłacone? Żeby się dowiedzieć musi podać Twój kod?
A nie lepiej stałe miejsce gdzie sprawdzi tabele kiedy, co i jak zapłacił?
Wchodzi sobie na stronę, wyszukuje siebie (np. po nipie aby inni nie mogli podglądać bądź po jakiś unikalnym ID, mailu etc.).

Poza tym jeżeli kody nie są przypisane pod klienta to w jaki sposób klient "powie", że jestem klientem Jan Kowalski?
Przecież może się pomylić? Wpisze Jam Kowalski i już płatność powędruje tam gdzie nie trzeba. Pomijam format wpisu (raz zapłaci żona i wpiszę na odwrót i co? będziesz tworzył obszerne algorytmy, które będą wychwytywać te błędy?).

Cytat(przykladowa rozmowa)
- Dziękuje za wpłatę, tu podaje kod, proszę wpisać go na stronie xxx bo inaczej płatność nie będzie odnotowana..
- Ee.. Skoro zapłaciłem nie może Pani oznaczyć, że jest zapłacone? Jadę prosto na wyjazd i pewnie ten kod gdzieś zgubię
- Przykro mi.. Taki mamy system..


Cytat(maxbartko)
można coś takiego zrobić lecz podczas montażu będę starał się rejestrować klienta, gdyż podczas rejestracji będzie się podawać dane jego, które później wykorzystam do faktur.

System, który Ci proponowałem na PW znacznie to Ci ułatwi, a może i nawet Cie zastąpić.
Wystarczy prosty program do faktur on-line z API i faktura sama się wystawi i wyśle do klienta.
W momencie płatności oznacza sobie "chce fakturę" i cała robota z głowy.

Cytat(krystianroza @ 22.12.2011, 12:53:03 ) *
Mało kto pomaga już bez $ smile.gif

Tak... Te 50 tysięcy użytkowników ma konto tylko po to aby łapać zlecenia na tym forum..
Zero pomocy, same oferty w tematach...
krystianroza
Ogólnie tak jak kiedyś mówiłem schemat płatności przy użyciu kodu jest troszkę bez sensu, ale skoro tak potrzebujesz to ok smile.gif
Koncepcja bardzo ryzykowna, bo klienci będą i tak mówili, że kasę Ci dali, a system nie przyjął im kodu, a Ty też tego nie będziesz miał odnotowane...
Skoro już zbierasz kasę jeżdżąc jak inkaso to ustal sobie jeden dzień do jazdy, zrób listę klientów do objechania (gdzie wpłata jest wymagana) i jak wrócisz do domu to wpisz w skrypcie (wystukaj) smile.gif

No, a Twoja koncepcja to o ile dobrze rozumiem to taka, że dajesz klientowi kod, on go wpisuje na stronie i stąd system ma wpłatę zaksięgowaną.
Tłumaczyłem Ci kiedyś smile.gif
Jak nie umiesz pisać stron to zrób prosty schemat co w danym momencie skrypt ma robić....

Np
Strona 1 - index:
- strona klienta (logowanie)

Po zalogowaniu
Strona klienta:
- link do dokonywania wpłat (strona 2)
- link do strony listy wpłat (strona 3)

Strona 2
- dane do wpłaty: kod
Przycisk dodaj wpłatę - sprawdza, czy istnieje kod, czy był użyty, jeśli jest taki kod i nie był użyty dodaje do tabeli wpłaty (data wpłaty, id_kodu, id_klienta, okres_rozliczeniowy), dodaje do tabeli klient (ilość wpłat +1, data ostatniej wpłaty) [na podstawie pola data pierwszej wymaganej wpłaty i ilości wpłat stosunkowo łatwo można obliczyć za który miesiąc jest dany kod - w przykładzie okres_rozliczeniowy] ;

Strona 3
- na podstawie od do tak jak ktoś wspomniał można wykorzystać funkcje select, że będzie wybierała tylko te wpłaty z zakresu początku (dzień, miesiąc, rok) i końca lub wg miesięcy rozliczeniowych, czyli miesiąc rozliczeniowy - data wpłaty (wpisania kodu)

Z drugiej strony jest LMS na linuxa, więc po co się męczyć smile.gif


Nie licz, że ktoś za free bedzie robił, bo trzeba się zapoznać z całym skryptem, bo piszesz tak jak ja strukturalnie...
maxbartko
Skrypt prawie gotowy. Dziękuje wam wszystkim za odp. Temat do zamknięcia!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.