Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: maniootek w Luty 08, 2017, 15:57:55
-
Witam.
Po pomyślnie zrealizowanym wywołaniu metody "Drukuj" na obiekcie "SuDokument" wykonuje metodę 'StatusFiskalny', która zwraca wartość "false" a powinno "true".
$oParagon = $oSubiekt.SuDokumentyManager.Wczytaj("PA 1/02/2017")
$oParagon.RejestrujNaUF = True
$oParagon.DrukarkaFiskalnaId = $drukarka_id
$oParagon.Drukuj(False)
$status = $oParagon.StatusFiskalny
$oParagon.Zamknij
//$staus = false
Dopiero taki schemat działa ale jest nieoptymalny
$oParagon = $oSubiekt.SuDokumentyManager.Wczytaj("PA 1/02/2017")
$oParagon.RejestrujNaUF = True
$oParagon.DrukarkaFiskalnaId = $drukarka_id
$oParagon.Drukuj(False)
Sleep(5000)
$oParagon = $oSubiekt.SuDokumentyManager.Wczytaj("PA 1/02/2017") //ponowne wczytanie obiektu
$status = $oParagon.StatusFiskalny
$oParagon.Zamknij
//$staus = true
Czy ktoś pomoże mi zrozumieć dlaczego muszę wczytywać paragon od nowa? Zna ktoś jakiś inny sposób? Może metoda, która odświeży dokument?
-
Zdradzisz co chcesz zrobić ?
-
Nie chcę wysyłać polecenia Drukuj, dopóki poprzedni dokument nie zostanie prawidłowo sfiskalizowany. Obecnie robię na zapytaniu SQL ale chciałem, żeby to działało przez Sferę
-
Przez Sferę nie ma innej możliwości niż wczytanie dokumentu, przecież wydruk/fiskalizacja dokumentu nie jest częścią edycji dokumentu, nie jest wykonywane w transakcji zapisu, dzieje się zupełnie obok przez nieokreślony z góry czas (może to być 2-5s jak również 20-50s) i nie musi zakończyć się poprawnie. Jedyny rozsądny sposób to pominięcie Sfery, można też rozważyć sprawdzanie rejestru transmisji.
-
Obecnie odpytuje bazę SQL w pętli do momentu aż dokument otrzyma status fiskalizacji. Druga opcja to wczytywanie dokumentu i sprawdzanie jego stanu fiskalizacji w pętli. Która opcja jest bardziej optymalna i "lżejsza" dla bazy SQL?
-
Obecnie odpytuje bazę SQL w pętli do momentu aż dokument otrzyma status fiskalizacji.
A jak nie otrzyma takiego statusu ?
Która opcja jest bardziej optymalna i "lżejsza" dla bazy SQL?
Przecież napisałem i zasugerowałem jeszcze lepsze rozwiązanie ?
-
A jak nie otrzyma takiego statusu ?
Wiadomo zrobię timeout i odpowiednie powiadomienie w razie niepowodzenia.
można też rozważyć sprawdzanie rejestru transmisji.
Mógłbyś to rozwinąć? Pierwsze słyszę
-
można też rozważyć sprawdzanie rejestru transmisji.
Mógłbyś to rozwinąć? Pierwsze słyszę
Pierwszy raz słyszysz, że każda operacja związana z obsługą urządzeń zewnętrznych jest zapisywana w rejestrze transmisji ? Zajrzyj do: Kasiarz->Rejestr transmisji...