A.L.E.C napisał(a):
Konrad Cempura wrote:
Ponieważ %period zamieniane jest na nieładny ciąg danych (zależny od typu płatności), chciałbym, żeby %month było zamieniane na miesiąc płatności (Czyli np. Abonament za lipiec 2006). Dodatkowo jak się uda chciałbym wdrożyć inne ciągi znaków, żeby było więcej możliwości zamiany ciągu danych.
Dwa zagadnienia(pytania)... czy czasem skrypt lms-payments tego nie potrafi.
potrafi, ale podaje miesiąc jako liczbę (%current_month), nie słownie.
Druga sprawa jest ściślej związana z kodem. Przeglądałem już
go i sprawdzałem jak zamieniana jest zmienna period. Chciałbym wiedzieć co jest rezultatem procedury get_period i jakie parametry ona przyjmuje. Co to jest dokładnie.
char * get_period(struct tm *today, int period, int up_payments)
today - data dzisiejsza period - stała określająca co jaki okres jest naliczane zobowiązanie: tygodniowo, miesięcznie, itd. up_peyments - płatność z góry, czy z dołu
funkcja zwraca dwie daty w postaci xxxx/xx/xx-xxxx/xx/xx
Chciałem wprowadzić jeszcze jedną zmienną m_month, ale rozwiązanie jest mało czytelne i nie eleganckie. Z tego co widzę, to trzeba napisać od nowa procedurę żeby można było zamieniać więcej ciągów niż tylko %period.
możesz dodać tyle zmiennych ile chcesz, a wstawiać je należy do zmiennej description w okolicach linii 366. Funkcji get_period raczej nie ruszaj.
To jesli zwraca numer to tylko utworzyc tablicę miesiecy i żeby numer wskazywał na nazwę miesiąca. No i wystawić tą tablicę w ładnym miejscu, żeby można było zmodyfikować.
Co do char * get_period(struct tm *today, int period, int up_payments) to faktycznie nie będę tej funkcji ruszał.
Istnieje jeszcze plan, żeby ją zmodyfikować, żeby więcej danych zwracała (do wszystkich zmiennych, jakie chcę zamieniać).
Myślę, że łatwiej będzie napisać nową funkcję. Poza tym mówisz, żeby nie ruszać get_period. Napiszę podobną funkcję zwracającą w przypadku daily datę, w przypadku weekly numer tygodnia w roku, monthly nazwę miesiąca, quaterly nazwę trzech miesięcy, w razie yearly byłby zwrócony numer roku.
Później zamieniał bym tym string %period_name czy coś podobnego.
No i drugi string, który chcę utworzyć %year zwracał by zawsze aktualny rok.
Potrzebna mi jeszcze informacja w jakich zmiennych znajdę datę rozpoczęcia i zakończenia okresu płatności?
Co jest w obiekcie tt? Data wykonania skryptu? Jeśli mozna w skrócie jak działa switch (period), konkretnie co jest dodawane i odejmowane od tych zmiennych i co to za zmienne. No i na koniec co to robi?: strftime(to, 11, "%Y/%m/%d", localtime(&old_time)); strftime(from, 11, "%Y/%m/%d", localtime(&new_time));
Myślę, że mając już te informacje zrobię co trzeba. Pozdrawiam Konrad Cempura