Systemy sprzedaży


Temat:

PS3000 i Soleo - komunikacja z kasą przez FTP

Program:

PC-Market

Słowa kluczowe:

Dokumentacja urządzeń, Kasy

PS3000 i Soleo - komunikacja z kasą przez FTP



Zasada działania:
Komunikacja odbywa się przez pliki umieszczone na serwerze FTP. Każda kasa ma na serwerze swój własny podkatalog, którego nazwą jest numer unikatowy kasy np.:
FTP/PS3000/AFR05068290

1). W katalogu wymiany powinien się na stałe znajdować plik FTP/PS3000/AFR05068290/CFG.TXT. Może być pusty, ale być musi. PC-Market zakłada ten plik podczas kadego połączenia, jeśli ten nie istnieje.

2). Podczas każdego połączenia kasa zostawia w katalogu plik FTP/PS3000/AFR05068290/ECRID.TXT zawierający informacje o tej kasie. W moim przypadku:
Dane identyfikacyjne urządzenia fiskalnego
Numer unikatowy: AFR05068290
Numer NIP: 000-000-00-00
Nazwa urządzania: PS3000 plus
Wersja urządzenia: 2.00
Nazwa systemu: OES
Wersja systemu: 1.30

3). Podczas każdego połączenia kasa szuka w katalogu pliku FTP/PS3000/AFR05068290/REQrrrrmmddxxx.TXT. O pliku dalej w rozdziale Eksport.


Eksport:
Odbywa się to podobnie, jak w przypadku kas typu PC-POS, EuroPOS. Różnica polega na tym, że kasa nie odbiera danych w tym samym czasie, w którym są one wysyłane przez PC-Marketa. Na przykład PC-Market wysyła tranmisję do kas o 16:00, a kasy odbierają ją o godzinie 20:00, podczas zamykania sklepu. Tak więc PC-market nie ma natychmiastowej informacji np. o tym, ze kasa nie przyjęła jakichś towarów. Informację tę pobierze podczas nastepnego eksportu. Z powodu tak działającego mechanizmy, PC-Market nie ma możliwości odznaczania toarów, których eksport się nie udał. jedynie informuje o tym w oknie podglądu komunikacji następnego dnia.

Podczas połączenia, kasa szuka w katalogu wymiany plików o nazwie FTP/PS3000/AFR05068290/REQrrrrmmddxxx.TXT. Wyjątkiem jest przypadek, gdy kasa jest świeżo po zerowaniu pamięci - wówczas będzie szukała pliku FTP/PS3000/AFR05068290/RECrrrrmmddxxx.TXT. Za pierwszym razem po resecie kasy (po wysłaniu plików na FTP) należy ręcznie zmienić nazwę pliku REQ na REC.

xxx - numer kolejny pliku w danym dniu

Kasa zapamiętuje , na jakim numerze skończyła podczas ostatniego importu. Szuka więc pliku o kolejnym numerze. Jeśli ostatni import odbył się wczoraj, to w katalogu jest szukany plik z data wczorajszą o kolejnym numerze i plik z dnia dzisiejszego o numerze 000.

Czyli, jesli dzis jest 2007.03.14, a kasa ostatni raz odebrała import REQ20070313005.TXT, to poszuka w katalogu najpierw pliku REQ20070313006.TXT, a nastepnie REQ20070314000.TXT.

Algorytm generowania pliku REQ przez PC-Market:
REQYYYYMMDDxxx.TXT
REQ20080221000.TXT
Na FTP zostanie utworzony plik REQ o numerze o 1 wiekszym, niż pobrany z konfiuracji (parametr Nazwa ostatniego pliku REQ).
Jeśli jest to pierwszy REQ w dniu dzisiejszym, to będzie miał numer 000.
Jeśli na FTP znajduje się już plik o tej nazwie (jest to sytuacja awaryjna i w praktyce nie będzie występowała), to nowy REQ będzie miał najbliższy wolny numer.

Nazwa pliku REQ jest tworzona wg nastepującego algorytmu:
1). PCM pobiera nazwę pliku z konfiguracji i sprawdza, czy jest to plik REQ z dnia dzisiejszego.
a). Jeśli tak, to tworzy nazwę pliku REQ z numerem xxx o 1 większym
b). Jeśli nie, to tworzy plik REQ z numerem xxx = 000, z datą dzisiejszą
2). Sprawdza, czy na FTP już znajduje się plik REQ o tak przygotowanej nazwie. Jeśli tak, to inkrementuje numer aż do uzyskania unikalnej nazwy pliku REQ.
3). Tak przygotowany plik REQ umieszcza na FTP, a do konfiguracji zapisuje jego nazwę.




Import:
Kasa jest tak ustawiona, że za każdym razem, gdy połączy się z serwerem FTP, zostawia na nim swoje aktualne dane o sprzedaży. Dane te są zostawiane w plikach:
SANrrrrmmddhhmm.txt - spis treści (lub ANS, jesli w katalogu wymiany był REQ)
RU--rrrrmmddhhmm.txt - dane o sprzedazy towarów
Rd--rrrrmmddhhmm.txt - dane o sprzedaży opakowań
Rk--rrrrmmddhhmm.txt - paragony szczeółowe
ERU--rrrrmmddhhmm.txt - log błędów powstałych podczas wykonywania raportu sprzed. towarów
ERd--rrrrmmddhhmm.txt - log błędów powstałych podczas wykonywania raportu sprzed. opakowań
ERk--rrrrmmddhhmm.txt - log błędów powstałych podczas wykonywania raportu paragonów szczegółowych

W zależności od tego, czy w katalogu wymiany znajduje sie plik REQ dla kasy, moze ona powyższe pliki przesyłać pod nazwami, w których zamiast listerki R występuje Q. Np.: QU--... ,Qk..., EQU--..., EQk--...

Mimo, że kasa pozwala na taką możliwość, to PC-Market nie wymusza wykonywania raportów o sprzedazy na kasie poprzez umieszczanie rozkazów w plikach typu REQ. Tak więc, jesli na kasie nie będzie włączony eksport raportów o sprzedaży, to nie będą one docierały do PC-Marketa.

Konfiguracja PC-Market:



Numer unikatowy kasy - komunikacja z kasą odbywa się przez katalog wymiany na serwerze o tej nazwie. Kasa po pierwszym połączeniu z serwerem FTP sama założy ten katalog, więc jest to łatwy sposób na uzyskanie tego numeru.

FTP: Adres, Port, Login Hasło - parametry połączenia z serwerem FTP.
FTP: Tryb pasywny - zalecamy komunikację w trybie aktywnym. Uzyte kontrolki Borlanda mają czasem brzydki zwyczaj zawieszania się w trybie pasywnym.
FTP: Katalog wspólny kas - (np. /FTP/PS3000) katalog wymiany z kasami. W katalogu tym będą znajdowały się podkatalogi o nazwach zgodnych z numerami unikatowymi kas.
FTP: Timeout komunikacji - timeout, który dajemy bibliotece komunikacyjnej na jakąkolwiek operację. Po upływie tego czasu uznaje one, że serwer nie odpowiada.
FTP: Poziom raportowania komunikacji - domyślnie powinien być wyłączony. Pozwala na śledzenie połączenia FTP.

Towary z ceną zamkniętą wysyłaj do działu 41 - Dział 41 może być na kasie traktowany jako dział asortymentów akcyzowych. Na takie towary kasa nie pozwoli udzielić rabatu.
Nazwa ostatniego pliku REQ - nazwa ostatnio umieszczonego na FTP pliku REQ. Kolejny będzie mial numer utworzony wg algorytmu opisanego powyżej.
Numer klawisza szybkiej sprzedaży - jeśli wskazano np. pole Opis1 karty towaru, to liczba wpisana w to pole będzie wysyłana jako numer klawisza szybkiej sprzedaży tego towaru.


Konfiguracja kasy:
Szczegółowa konfiguracja kasy jest opisana w instrukcji FTP_Menadżer_instrukcja_użytkownika.pdf. Poniżej skrócony opis i zalecane wartości niektórych parametrów:

Modem (realizacja połączenia z internetem):
4511 - zdefiniować port, do którego jest podłączony Modem (u mnie COM4)
4514 - definiować konfiguracje modemu U mnie:
Prędkość: 19200,
Ciąg init. modemu: AT&FE0X0
Polecenie połącz: ATDT21 (numer telefonu Dial-Up 21)
Użyj połączenia PPP: zaznaczony
PPP Uzytkownik: ppp
PPP Hasło: ppp
PPP Typ logowania: (PAP - dla połączenia z WIN XP, Terminal dla połączenia TPSA 0W202122)
PPP Opóźnienie nad.: 1000msek

FTP Menadżer (realizacja połączenia przez internet z serwerem FTP):
45161 - ustawić parametry połączenia do serwera FTP. U mnie:
Host FTP: 192.168.0.199
Port Serwera: 21 (21, to standardowy port serwerów FTP)
Login: insoft
Hasło: insoftp
Ścieżka na serwerze: FTP/PS3000
Połącz uzywając: DIAL-UP
Opcje:
1. Folder rap. /NrUn - zaznaczony (ważne - tak ustawić)
2. Folder zadań - zaznaczony (wazne - tak ustawić)

FTPMenadżer (opcje pracy)
45162 - definiować dowolnie w zalezności od potrzeb. U mnie zaznaczone:
1. Aktywny
5. Druk.raport.poł.
45164 - zdefiniować dokładnie, jak poniżej:
Lista do wysłania -> 15. sprzedaz PLU
Lista do wysłania -> 16. Zamówienia
Lista do wysłania -> 17. Sprzedaż opak.
Lista do wysłania -> 23. Paragonów-k

Na kasie, FTP Menadżera włącza się w menu 1321. Wyłącza się opcją menu 1322. Przy powyższych ustawieniach powinien natychmiast rozpocząc działanie: przez modem połączyć się z serwerem Dial-Up, nastepnie przez internet z serwerem FTP i odpowiednim katalogiem.


Konfiguracja serwera Dial-up na Windows XP:
W moim przypadku, do testów uruchomiłem serwer dial-up na komputerze pod Windows XP. Do komputera podłączony modem. Na tym samym komputerze miałem uruchomiony serwer CeasarFTP 0.99g.

Dial-up na WinXP konfiguruje się przez dodanie nowego Połączenia sieciowego (Utwórz nowe połączenie) -> konfiguruj połączenie zaawansowane-> Zaakceptuj połączenia przychodzące. Pula numerów IP przydzielanych klientom i serwerowi nie ma żadnego znaczenia w konfiguracji kasy. W konfiguracji adresu FTP na kasie należy nadać rzeczywisty adres IP tego komputera. W moim wypadku pula przydzielanych adresów, to było 192.168.0.12 do 192.168.0.13. Podczas połączenia peer-peer kasa dostawała adres 192.168.0.13, mój komputer adres 192.168.0.12, jednak adres mojego serwera FTP należało zdefiniować na kasie jako 192.168.0.199 - czyli realny adres mojego komputera.

Import:
Import paragonów jest możliwy od wersji 7.2.107.0 .

Podczas importu zawsze jest analizowany plik z paragonami szczegółowymi. Jednakże , zależności od niżej wymienionych parametrów dane są odpowiednio zapisywane do bazy:

Kontrola-> Obsługa kas...-_ Import sprzedaży z kas-> PS3000FTP - Import szczegółowy paragonów
Jeśli ustawiony na TAK, to paragony są zapisywane w bazie PC-Marketa (w tablicy Paragon). Jeśli jest ustawiony na NIE, to dane o paragonach szczegółowych sa jedynie analizowane w celu uzyskania takich informacji, jak: ilośc paraognów, koszyków, raport godzinowy, utargi w formach płatności

Kontrola-> Obsługa kas...-_ Import sprzedaży z kas-> PS3000FTP - Import sprzedaży przez bufor paragonów
Jeśli ustawiony na TAK, to dane o sprzedanych towarach nie są uzyskiwane z plikow RU, Rd, QU, Qd (liczników PLU), lecz z pliku paragonów szczegółowych (Rk, Qk). Dane o sprzedaży wg licznikiow PLU są ignorowane.

Aby uzyskać najbardziej wiarygodne dane zalecam ustawienia tych parametrów w nastepujący sposób:
PS3000FTP - Import szczegółowy paragonów - TAK
PS3000FTP - Import sprzedaży przez bufor paragonów - TAK

Formy płatności do dokumentu UTARG oraz do rozliczenia kasjera są mapowane 1:1 z jednym wyjątkiem: Jeśli zapłacono bonem (lub inną formą, z której nie wydaje się reszty), to teoretyczna reszta jest uwzględniana w formie płatn. "inne" ze znakiem ujemnym. Jeśli z formy płatności wydaje się resztę, to jest ona normalnie potrącana z gotówki.

Do paragonów ściągnietych z kasy mozna wystawić fakturę. Jednak taki paragon musi być wcześniej ściągnięty z kasy do bazy PC-Marketa przy pomocy normalnego importu z włączonym parametrem PS3000FTP - Import szczegółowy paragonów (paragon musi się znajdować w tablicy Paragon).

Importy są zapisywane do bazy PCM w podziale: osobny dokument importu na każdy dzień. W przypadku paragonów szczegółowych jako data sprzedaży pobierana jest data wystawienia paragonu. W przypadku importu po licznikach PLU, data sprzedazy jest data wyciągnieta z nazwy pliku raportu (np. Rd--rrrrmmddhhmm.txt).

Karty stałego klienta są obsługiwane wg "nowej metody" opisanej w dokumencie -> Database 'Publikacje Insoft w Internet', View '6. Dokumenty do autoryzacji', Document 'Novitus PS3000, System - konfiguracja definicji kart rabatowych'.
W tej metodzie maska kodu karty jest zdefiniowana w konfiguracji sterownika w PCM, a nie jest ściagana z kasy.
Kody kart stałego klienta są zapisywane w tablicy Paragon jako numer klienta zapisany w sekcji kkkk.... Np.
290yymmkkkkrx - maska kodu karty
2900812123411 - pełny kod karty stałego klienta
1234 - numer klienta zapisywany do bazy PC-Market


Import zamówień:
Opisany tutaj -> Database 'Publikacje Insoft w Internet', View '2. Troubleshooting PC-Market\2. Data', Document 'PS3000 i Soleo (FTP) - import zamówień'

Wiadomości SMS:
1). Wiadomości do kasy można wprowadzić w oknie konfiguracji kasy, na zakładce F7 -> Wiadomość SMS:



Maksymalnie można wprowadzić 8 wiadomości tekstowych. Po wprowadzeniu wiadomości i naciśnięciu klawisza Zapisz, należy jeszcze zapisać okienko nadrzędne (konfiguracji) przy pomocy Zapisz lub Zastosuj (od wersji 7.2.107.134 stosowna poprawka, aby użytkownik nie zapomniał). Wprowadzone wiadomości są zapisywane w bazie danych. Nie ma możliwości podglądnięcia wpisanych wcześniej wiadomości. Klawisz Usuń wszystkie wiadomości kasuje wszystkie wcześniej wprowadzone wiadomości.

2). Wiadomości odebrane z kasy pojawią się w oknie importu danych z kas:





Programowanie kasjerów:
Pola z karty kasjera w PC-Market są programowane na kasie w nast. sposób:

<PC-Market> <Kasa>
Numer kasjera -> Numer kasjera
Nazwisko -> Nazwa
Rola -> Rola (KASJER-rola 1, NADZÓR-rola 2, MANAGER-rola 3, SERWIS - rola 4)
Kod karty ident. -> Hasło

Uwaga! Od wersji EPROM SP7 Novitus zapowiada zmianę formatu przesyłanych numerów kasjera w paragonach. Będzie wymagana zmiana w naszym sterowniku. Z tego powodu należy uważać na zgodność EPROM ze sterownikiem (opis poniżej).


Lista rzeczy nieobsługiwanych na kasie przez FTP:
- nie ściągamy statusu zalogowanego kasjera
- nieobsługiwane wpłaty i wypłaty - chyba tego się nie da zrobić przez FTP, bo raport kasjera się nie zeruje, a bufor paragonów nie obsługuje wpłat/wypłat
- nie są obsługiwane inne waluty

Błędy zauważone na kasie:
1). (Soleo 1.30SP2) Problem z małymi. dużymi literami podczas komunikacji FTP. Na niektórych serwerach kasa nadpisuje nazwy plików o nazwach różniących sie wielkością liter. Zgłoszone Novitusowi -> . Trzeba uważać, żeby nie włączać na kasie nadmiarowych raportów w konfiguracji FTP Managera.
2). (Soleo 1.30SP2) Błędnie przesyłane rekordy paragonów szczegółowych dla kasjera nr 12. Problem rozwiązałem po naszej stronie. (zobacz pkt. "Programowanie kasjerów powyżej"). Zgłoszone Novitusowi ->


Uwaga na wersję EPROM! program FTP Manager jeszcze zmienia się w czasie. Praca przez sterownik na wersjach wcześniejszych, niż podano w okienku konfiguracji urządzenia może spowodować problemy. Numer wersji jest zapisany w opisie sterownika:



Powyższy zapis oznacza, że ta wersja sterownika była testowana z Soleo 1.10 OES 1.30 SP2 i teoretycznie powinna pracować poprawnie z wersjami późniejszymi tej kasy.


Instrukcja od Novitusa:

FTP_Menadzer_1_16.pdf