Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ciekawe pytanie o schemat bazy danych na faktury
wiewiorek
post
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 11
Dołączył: 5.09.2009

Ostrzeżenie: (0%)
-----


Mam problem z zaprojektowaniem schematu bazy danych na faktury. Chodzi o to, ze jeżeli klient kupił np. 20 klawiatur i 5 myszek i została mu wystawiona faktura, a po jakimś czasie zwrócił 5 klawiatur to trzeba mu wystawić fakturę korygującą na której będzie napisane coś w stylu:
POZYCJE KORYGOWANE
klawiatura | 20 | ....

POZYCJE PO KOREKCIE
klawiatura | 15 | .....

Tutaj macie jakąś przykładową znalezioną w google fakturę korygującą żeby to jakoś obrazowo pokazać: http://gusoft.com.pl/faktorzysta/graph/fak...kladowa_kor.pdf

Oczywiście nie można w związku z tym zmienić ilości zamówionych klawiatur w tabeli POZYCJE_ZAMOWIENIA bo potem przy tworzeniu faktury nie byłoby skąd wziąć pierwotnej liczby zamówionych klawiatur, a na fakturze muszą być pierwotne i ostateczne wartości.

W związku z tym zaprojektowałem taki schemat bazy danych:
(IMG:http://img198.imageshack.us/img198/1699/aaanke.jpg)

Tabela POSITIONS_ORDER_CORRECTION - czyli pozycje zamówienia, które uległy zmianie - tabela ta jest niemal kopią tabeli POSITIONS_ORDER - czy w związku z tym ten schemat jest ok ? Bo innego sposobu na to chyba nie ma ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
JohnnyB
post
Post #2





Grupa: Zarejestrowani
Postów: 76
Pomógł: 19
Dołączył: 19.01.2010

Ostrzeżenie: (0%)
-----


moim zdaniem teraz wygląda całkiem nieźle,
można by dodać jeszcze jakieś szczegóły, np. id_faktury_korygowanej do tablicy faktur aby mieć możliwość śledzenia która korekta jest do jakiej faktury (kiedyś w jednej firmie widziałem fakturę, do której było 5 faktur korygujących czyli była korekta korekty itd), ale to zależy czy chcesz mieć taką funkcjonalność.
Jeszcze taka uwaga - jeśli będziesz potrzebował jakichś sumowań (np. ile sprzedano towarów w danych okresie), to warto od razu zastanowić się jaki wpływ na to będą miały faktury korygujące, np. takie wyrażenie

sum(ilosc) from pozycje_faktury;

zadziała prawidłowo bez faktur korygujących, ale z fakturami korygującymi już niekoniecznie. Ja to rozwiązuje w ten sposób, że w przypadku faktur korygujących do kolumny ilość wpisuję różnicę pomiędzy tym ile powinno być a ile było.
Przykład (tabela pozycje_faktury):

ilosc ile_bylo ile_powinno_byc
20 NULL NULL // zwykła faktura
-5 20 15 // faktura korygująca

teraz sumowanie działa prawidłowo - faktycznie sprzedano 15 szt.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 23:52