Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] System obsługi sprzedaży, Sposób na napisanie prostego systemu obsługi sprzedaży
dsinfo
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 30.03.2006

Ostrzeżenie: (10%)
X----


Piszę pewną aplikację w języku PHP i mam mały, a właściwie to ogromny problem.
Otóż piszę aplikację prostej obsługi sprzedaży. Potrzebuję 5 pól. W jedno takie
pole wpisuję kod produktu i obok pojawia mi się jego kod,nazwa i cena. Sposób w
jaki można wyświetlić wcześniej wymienione dane o odpowiednim produkcie, po uprzednim
wpisaniu jego kodu - mam już rozwiązany. Ale, nie do końca. W poniższych listingach przedstawiam
aktualny stan kodu. Mój problem polega na tym, że tych pól jak już wspomniałem ma być
aż 5. I tu zaczyna się poważny problem. Otóż jak wpiszemy do dowolnego pola kod produktu
(np. "001") to wyświetlą nam się o nim dane, natomiast gdy do drugiego pola wpiszemy
następny kod produktu (np. "002") - to poprzednie dane znikną. I tak dalej z kolejnymi polami.
W tym właśnie miejscu tkwi mój problem. A, więc cóż mam uczynić, aby wcześniej wyświetlone dane
nie znikały mi?

Listingi:

d.php - baza danych o produktach:

  1. <?php
  2. $art['001']['nazwa']='Towar A';
  3. $art['001']['cena']='30';
  4. $art['002']['nazwa']='Towar B';
  5. $art['002']['cena']='40';
  6. $art['003']['nazwa']='Towar C';
  7. $art['003']['cena']='50';
  8. ?>


i.php - formularz numer jeden:


  1. <table border="0" width="616"><tr><td width="210">
  2. <form action="ii.php" method="get">
  3. Litera: <input type="text" name="a" />
  4. <input type="submit" value="Wyslij" />
  5. </form>
  6. </td><td width="396"><?php
  7.  
  8. include ("d.php");
  9.  
  10.  
  11. $a=$_GET['a'];
  12.  
  13.  
  14. if (isset($art[$a])) echo ('<table border=0><tr><td width=119>'.$a.'</td><td width=208>'.$art[$a]['nazwa'].'</td><td width=55>'.$art[$a]['cena'].'</td></tr></table>');
  15.  
  16. ?></td></tr></table>




v.php - formularz numer dwa:


  1. <table border="0" width="616"><tr><td width="210">
  2. <form action="ii.php" method="get">
  3. Litera: <input type="text" name="b" />
  4. <input type="submit" value="Wyslij" />
  5. </form>
  6. </td><td width="396"><?php
  7.  
  8. include ("d.php");
  9.  
  10. $b=$_GET['b'];
  11.  
  12.  
  13.  
  14. if (isset($art[$b])) echo ('<table border=0><tr><td width=119>'.$b.'</td><td width=208>'.$art[$b]['nazwa'].'</td><td width=55>'.$art[$b]['cena'].'</td></tr></table>');
  15. $cena=$art[$b]['cena'];
  16. echo ($cena);
  17.  
  18. ?></td></tr></table>



ii.php - plik główny:

  1. <?php
  2.  
  3. include ("i.php");
  4. echo ("<br><br><br><br>");
  5. include ("v.php");
  6.  
  7. ?>


Ten post edytował dsinfo 11.08.2008, 11:57:10
Powód edycji: Dodałem tag. /webdicepl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dsinfo
post
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 30.03.2006

Ostrzeżenie: (10%)
X----


Na samym początku bardzo dziękuję za udzielenie mi wcześniejszej pomocy.



Mam jeszcze jeden problem, a właściwie sprawe. Otóż chciałbym w pliku lps.php (kod przedstawiono we wcześniejszym poście) - Lista sprzedanych produktów, dodać jedno udogodnienie które uprości przeglądanie jakie produkty zostały sprzedane danego dnia. Otóż ja chciałbym, aby ową listę podzielić na dni,miesiące oraz lata.

Najpierw wybieramy rok (np. 2008, później też 2009,itd.).
Po dokonaniu tego wyboru pojawiają się nam miesiące (Styczeń,Luty,itd.).
Po wybraniu odpowiedniego miesiąca, pozostaje nam już tylko wybranie odpowiedniego dnia (1,2,3,itd.).
Po wybraniu odpowiedniego roku,miesiąca i dnia - poniżej powinna pojawić nam się lista sprzedanych artykułów/produktów, jakie sprzedaliśmy danego dnia (danej daty*). Ta tabela prezentująca co sprzedaliśmy odpowiedniego dnia - powinna mieć tą samą postać co teraz, czyli powienna zawierać kolumny zatytułowane - "Kod produktu","Nazwa produktu","Cena brutto produktu", "Data sprzedaży" i "Czas sprzedaży" (tzn., że pozostaje bez zmian).


http://www.otofotki.pl/img3/obrazki/wxyz1093046145x.jpg


W tym jest tylko jedna sprawa. Chodzi mi także oto, aby lata,misiące i odpowiednie dni - nie wyświetlały się tj. na powyższym rysunku.
Ja chciałbym, aby odpowiednie dni, miesiące i lata dodawały (wyświetlały) się w odpowiednim czasie. Tzn. Dziś mamy 14 Sierpnia 2008 roku. Załużmy, że sprzedaż rozpocząłem 12 Sierpnia 2008r. W takim wypadku na ekranie powinnienem ujrzeć tylko:
Dni: 12 13 14 15
Miesiąc: Sierpień (w tym wypadku tylko)
Rok: 2008 (w tym wypadku tylko)
Jutro jak sprzedam jakiś artykuł do całości dopisze mi się nowy dzień, czyli 16. Po jutrze jak sprzedam
jakieś produkty - to dopisze mi się nowy dzień, czyli 16,itd. Jak skończy się Sierpień, pojawi się następny miesiąc - Wrzesień, a wraz z nim dzień 1.
Następnie drugiego dnia Września - pojawi się dzień 2,itd. Teraz dochodzimy do końca roku 2008. Otóż jak skończy się rok 2008 - to pojawi się nam rok 2009 (napis). Wraz z nowym rokiem pojawi nam się miesiąc - Styczeń, a wraz z nim jego pierwszy dzień - 1, itd.

Najlepiej jakby pojawienie się tych lat,miesięcy i dni zależało od wpisanej daty do bazy produktów
sprzedanych - plik baza.txt (przykładowy kod przedstawiony we wcześniejszym poście).




Dodatkowo mam jeszcze jedno pytanie.
Otóż lista sprzedanych produktów/artykułów zapisuje mi się w pliku baza.txt . I tak też niech pozostanie.
Ja chciałbym, aby poza tym, ta sama zawartość zapisywała mi się dodatkowo jeszcze w innym miejscu na dysku,
plik może mieć tą samą nazwę. Czyli cała lista produktów sprzedanych zapisuje mi się w pliku o nazwie baza.txt,
znajdującym się wraz z plikami skryptu, a dodatkowo ta sama zawartość zapisuje mi się jeszcze w innym miejscu
na dysku (np. pod adresem c:/baza/baza.txt). W tym także prosiłbym o pomoc.

Aktualny stan kodu pliku akceptuj.php:

  1. <?php
  2. include ("d.php");
  3. $dane = array ($_POST['a'], $_POST['b'], $_POST['c'], $_POST['d'], $_POST['e']);
  4. $suma = 0;
  5.  
  6. $plik = fopen("baza.txt", 'ab');
  7.  
  8. echo ('<table border="0" width="200px">');
  9. for($g=0; $g<5; $g++){
  10.  
  11. $exp = explode("|", $dane[$g]);
  12. $suma += $exp[2];
  13.  
  14. if(array_key_exists($exp[0], $art)){
  15. fwrite($plik, $dane[$g]);
  16.  
  17. echo '<tr>
  18. <td width="5" align="center" valign="middle"><font face=Arial size=1>'.$exp[0].'</font></td>
  19. <td width="100" align="center" valign="middle"><font face=Arial size=1>'.$exp[1].'</font></td>
  20. <td width="50" align="right" valign="middle"><font face=Arial size=1>
  21. '.number_format($exp[2], 2, ',', '').' zł</font></td>
  22. </tr>';
  23. }
  24. }
  25. echo ' <tr>
  26. <td align="center" valign="middle"></td>
  27. <td colspan="2" align="right" valign="middle"><font face=Arial size=1><b>Suma: '
  28. .number_format($suma, 2, ',', '').' zł</b></font></td>
  29. </tr> 
  30. </table>';
  31.  
  32. fclose($plik);
  33. ?>


Mam jedno już na 100% ostatnie pytanie.


Otóż mam skrypt prezentujący się następująco:

http://www.otofotki.pl/img3/obrazki/klmn1969195138t.jpg

Jest to skrypt sterujący pewną drukarką.
Jak widać ma on 5 pól za pomocą, których wysyła się nazwę towarów i ich ceny.
Ja potrzebuję, aby ktoś pomógł mi napisać kod, który by wypełniał wszystkie pola z nazwami
towarów (tytuł - "Nazwa towaru") i pola z cenami (pole "Cena" i "Brutt"). Odnośnie
pól zatytułowanych "Cena" i "Brutto" - chodzi oto, aby były one wypełnione identycznie.
Tzn. jeśli pole "Cena" przyjmuje wartość "6", to i pole "Brutto" przyjmuje tą samą wartość,
czyli "6".

Kod skryptu został przedstawiony na listingu pod adresem http://www.wrzucaj.com/907486 (aby, pobrać należy zaczekac 30 sekund).

Do działania skryptu wymagana jest instalacja kontrolki Active-X dla drukarki Posnet Thermal znajdującej się
pod adresem: http://www.posnet.com.pl/files/1277/Install_ThLib006.exe .


Całość ma być wstawiona do pliku o nazwie - akceptuj.php.

Aktualny stan kodu pliku - akceptuj.php:

  1. <?php
  2. include ("d.php");
  3. $dane = array ($_POST['a'], $_POST['b'], $_POST['c'], $_POST['d'], $_POST['e']);
  4. $suma = 0;
  5.  
  6. $plik = fopen("baza.txt", 'ab');
  7.  
  8. echo ('<table border="0" width="200px">');
  9. for($g=0; $g<5; $g++){
  10.  
  11. $exp = explode("|", $dane[$g]);
  12. $suma += $exp[2];
  13.  
  14. if(array_key_exists($exp[0], $art)){
  15. fwrite($plik, $dane[$g]);
  16.  
  17. echo '<tr>
  18. <td width="5" align="center" valign="middle"><font face=Arial size=1>'.$exp[0].'</font></td>
  19. <td width="100" align="center" valign="middle"><font face=Arial size=1>'.$exp[1].'</font></td>
  20. <td width="50" align="right" valign="middle"><font face=Arial size=1>'.number_format($exp[2], 2, ',', '').' zł</font></td>
  21. </tr>';
  22. }
  23. }
  24. echo ' <tr>
  25. <td align="center" valign="middle"></td>
  26. <td colspan="2" align="right" valign="middle"><font face=Arial size=1><b>Suma: '.number_format($suma, 2, ',', '').' zł</b></font></td>
  27. </tr> 
  28. </table>';
  29.  
  30. fclose($plik);
  31. ?>


http://www.otofotki.pl/img3/obrazki/iopg1005052713i.jpg

I teraz już tłumaczę. Otóż jak wspomiano we wcześniejszych plik skrypt.php pełni rolę - mini aplikacji pozwalającej
na wpisanie kodu towaru, a następnie wyświetlenie jego nazwy i ceny. W pliku skrypt.php znajduje się 5 pól pozwalających
na dokonanie tego. Pozatym plik ten pozwala też na wysłanie tych danych do pliku akceptuj.php. Plik akceptuj.php pozwala
na zapisanie tych danych do pliku o nazwie baza.php (jest to plik z listą sprzedanych artykułów) oraz wyświetlenie właśnie
sprzedanych artykułów. I tak ma pozostać.

Ja potrzebuję jak to już wcześniej wspomniałem dodania pewnego skryptu, którego kod i przykładowy zrzut ekranu został
przedstawiony na samym początku. Ten skrypt powinien zostać dodany poniżej, tzn. pod wyświetlającą się listą sprzedanych
właśnie artykułów w pliku akceptuj.php. Przykładowy rysunek poniżej:

http://www.otofotki.pl/img3/obrazki/uvwx493801730y.jpg

Jest tylko jedno, ale. Otoż w jaki sposób przedstawione na górnej liście dane wstawić do pól w poniżej dodanym skrypcie.
Dokładnie tłumacząc to potrzebuję (tj. wspomnialem na początku) powypełniać pola zatytułowane - "Nazwa towaru","Cena" i "Brutto".
Owe pola muszą zostać wypełnione identycznie jak w górnej części listy sprzedanych produktów. Pomijamy tylko kody produktów.
Dla przykładu pierwsze pole na górnej liście sprzedanych produktów w tym wypadku "Towar A" (podkreślone czerwoną linią),
ma zostać wpisane do pola tekstowego - "Nazwa towaru" (zakolorowano na czerwono) w pierwszej sekcji (numer linii 1).
Pole z nazwą "Towar B" z górnej listy sprzedanych produktów (podkreślone na ciemno niebieską linią) ma znaleźć się
w polu tekstowym zatytułowanym "Nazwa towaru" (zakolorowano ciemno niebieskim kolorem) w selekcji o numerze linii 2.
I tak dalej.

Odnośnie cen artykułów - mamy doczynienia z podobną procedurą. Np. cena dla "Towar A" wynosi 30.00 zł. "Towar A" został wpisany
do selekcji o numerze linii 1 (nazwę "Towar A" wpisano do zamalowanego na czerwono pola tekstowego). W tym wypadku cena owego
artykułu (pobrana z górnej listy) musi się znaleźć w polu "Cena" i polu "Brutto". Cenę "Towar A" zaznaczono kolerem pomarańczowym,
wraz z polami w które ma zostać wpisana. I tak dalej z kolejnymi polami.

http://www.otofotki.pl/img3/obrazki/ghij301995464k.jpg

Dodatkowo sumę do zapłaty, obliczoną w górnej liście sprzedanych właśnie artykułów - należy wpisać w pole zatytułowane "Total"
(na samym dole). Pole zaznaczono zielonkowatym kolorem, jak i przykładową wartość sumy (na górze).

Ważne jest to, aby wartości tj. 5 zł i 50gr nie były wpisywane w postaci "5,50" (z przecinkiem), tylko w postaci "5.50" (z kropką).
Oczywiście wpisane wartości liczbowe w owe pola nie mogą zawierać znaku "zł", ani żadnego innego znaku walutowego.

Czyli reasumując, proszę o pomoc w napisaniu skryptu, który pobierał by dane z wyświetlanej na górze liście właśnie sprzedanych
artykułów i wstawiał by je (wpisywał) w odpowiednie pola (opisane powyżej) dodanego skryptu. Całość odbywała by się w pliku
akceptuj.php.

Bardzo proszę o pomoc!




Dane, pobrane z listy właśnie sprzedanych artykułów (znajdującej się na górze) należy wstawić do atrybutu:
value=""
każdego ze znaczników <INPUT>. W tym wypadku pól tekstowych.

Ten post edytował dsinfo 14.08.2008, 08:54:29
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 16:30