Skocz do zawartości

Piotr Taraszkiewicz

Użytkownik
  • Liczba zawartości

    112
  • Rejestracja

  • Ostatnia wizyta

Zawartość dodana przez Piotr Taraszkiewicz

  1. Na jednym komputerze u klienta mamy problem z uruchomieniem połączenia ze Sferą. Przy próbie połączenia pojawia się wyjątek: Typ wyjątku: InsERT.Mox.Security.LicenceException Wiadomosć błędu: Dane licencyjne nie zostały wczytane. TargetSite: Void Finalize() Source: InsERT.Moria.Security HResult: -2146233088 StackTrace: w lTU=.Vjg=.Wzg=(zDU= ) w lTU=.ljY=.mTY=(zDU= ctx) w InsERT.Mox.Security.CriticalException.Finalize() ---------- INNER EXCEPTION --------------- Typ wyjątku: System.IO.FileNotFoundException Wiadomosć błędu: Nie można załadować pliku lub zestawu 'InsERT.Moria.Security.Core.dll' lub jednej z jego zależności. Nie można odnaleźć określonego modułu. TargetSite: System.Object MTY=(System.Object ByRef, System.Object[], Boolean, System.Reflection.MethodBase, Boolean) Source: InsERT.Mox.VMPackage.31.0.0.3698 HResult: -2147024770 StackTrace: w InsERT.Mox.Security.LicenceController.<>c__DisplayClass16_0.<RefreshInternal>b__0() w lTU=.JjY=.MTY=(Object& instance, Object[] methodArgs, Boolean isNullNullable, MethodBase methodBase, Boolean isVirtualCall) w lTU=.xEQ=.yEQ=(zDU= ) w lTU=.ljY=.mTY=(zDU= ctx) w lTU=.ljY=.mTY=(zDU= ctx) w VMRuntime.Libraries.CSVMRuntime.SzY=(FDY= vmMethod, zDU= ctx) w VMRuntime.Libraries.CSVMRuntime.SjY=(Assembly asm, String id, Object[] args) w VMRuntime.Libraries.CSVMRuntime.RunMethod(String id, Object[] args) w wRM=.sBQ=.sRQ=(Action action, Int32 retryCount) w lTU=.JjY=.MTY=(Object& instance, Object[] methodArgs, Boolean isNullNullable, MethodBase methodBase, Boolean isVirtualCall) w lTU=.SDg=.Tjg=(zDU= ) w lTU=.ljY=.mTY=(zDU= ctx) Na innym komputerze do tej samej bazy podmiotu i tej samej wersji nexo udaje się podłączyć bez żadnego problemu. Sprawdzaliśmy nasz program z najnowszą wersją Subiekta nexo i też u nas działa. Mechanizm połączenia nie był zmieniany od jakiegoś czasu i działa już u wielu klientów. Łączymy się za pomocą kodu: DanePolaczenia danePolaczenia = DanePolaczenia.Jawne(serwer: konfiguracja.Serwer, baza: konfiguracja.BazaDanych, autentykacjaWindowsDoSerwera: konfiguracja.AutoryzacjaWindows, uzytkownikSerwera: konfiguracja.Uzytkownik, hasloUzytkownikaSerwera: konfiguracja.Haslo ?? string.Empty); MenedzerPolaczen mengerPolaczen = new MenedzerPolaczen(); mengerPolaczen.DostepDoUI = false; Uchwyt sfera = mengerPolaczen.Polacz(danePolaczenia, ProductId.Subiekt); var czyZalogowany = sfera.ZalogujOperatora(uzytkownik.Login, uzytkownik.Haslo); Aby nasze rozwiązanie działało to kopiujemy wszystkie binarki z katalogu podmiotu do katalogu wykonywalnego naszej aplikacji. Nazwę katalogu z binariami sprawdzaliśmy w programie serwisowym (szczegóły podmiotu). Podmieniamy bibliotekę Newtonsoft.Json.dll, gdyż u nas jest wersja 12 a w nexo 10. Nie stanowi to jednak problemu na innych komputerach, więc raczej nie tu tkwi problem. Do serwera Subiekta nexo łączymy się za pomocą loginu/hasła. Zakładamy że skoro na tym samym podmiocie działa poołączenie na innym komputerze to użytkownik bazy danych ma odpowiednie uprawnienia. Próbowaliśmy też używać różnych użytkowników Subiekta nexo - bez rezultatu. Próbowaliśmy używać binariów kopiowanych z działającego komputera - jest ten sam efekt. Biblioteka InsERT.Moria.Security.Core.dll jest w katalogach: - x64 - x86 Próbowaliśmy ją kopiować do katalogu głównego aplikacji, jednak nic to nie dało. Windows został zaktualizowany. Subiekt nexo był przeinstalowany. Próbowaliśmy usuwać zawartość folderu 'AppData\Local\InsERT\Deployments\.zip-cache' (taka porada była w jednym wątku na forum) Niestety nic nie pomaga. Dane komputera: Wersja SQL: 2014 STANDARD Wersja Windows: Windows 10, wersja 2004, 64 bit Zainstalowany Microsoft Visual C++ 2015 Redistributable (x86) – 14.0.24215 Nexo Pro w wersji 31.0.0 (3698) Nie mamy już pomysłu czego próbować, dlatego też zwracamy się z prośbą o pomoc
  2. W ramach ProstejPaczki można włączyć realizację zamówienia przed przygotowaniem listu.. Realizować można jako WZ, PA, PAi, FS, PA + FSd albo bez dokumentu. Aby to faktycznie działało "jednym kliknięciem" to trzeba w zamówieniu mieć zapisany typ dokumentu docelowego (np. w polu własnym słownikowym lub w podtytule). - wtedy ProstaPaczka przygotuje dokument przez mechanizmy Sfery. Aby list wystawił się do odpowiedniego przewoźnika to też trzeba w zamówieniu wskazać do którego (np. w uwagach, polu własnym, formie płatności). Przy takich warunkach wystarczy zeskanować numer zamówienia (np. skanerem klawiaturowym) a ProstaPaczka najpierw zrealizuje ZK a jak się to uda to od razu wydrukuje etykietę kurierską.
  3. Z punktu widzenia ProstejPaczki to najlepiej mieć zdefiniowane dedykowane sposobu dostawy dla Allegro DPD w Sello. Później w ProstejPaczce należy te sposoby dostawy Sello zmapować na metody eksportu ProstejPaczki. Więcej informacji o konfiguracji Allegro DPD w Sello umieszczone jest na dedykowanym forum programu ProstaPaczka: https://forum.prostapaczka.pl/index.php?topic=316.0 Warto też włączyć w ProstejPaczce dla metody Allegro DPD weryfikację adrsu e-mail (w ustawieniach konta dostępowego) Więcej opisu można znaleźć na forum programu: https://forum.prostapaczka.pl/index.php/topic,291.0.html
  4. Mail jest dość ogólny i trzeba byłoby zapytać Allegro które listy mają niepoprawny adres. Może ich jest kilka a allegro wysyła od razu taką wiadomość.
  5. Przy ręcznym oznaczeniu paczki jako wysłane Sello wysyła powiadomienie e-mail. Czy jest możliwość aby z poziomu bazy danych "wymusić" wysłanie takiej wiadomości? Na ten moment (automatycznie, opcjonalnie) wprowadzamy do paczki datę wysłania, ale jak ktoś chce wysyłać powiadomienia z Sello to ta opcja jest "niewystarczająca". Może istnieje jakiś sposób aby oznaczyć (podobnie jak jest z synchronizacją numeru listu z Allegro) taką paczkę aby wygenerowało się powiadomienie?
  6. Jeden z naszych klientów ma trochę bardziej zautomatyzowany proces Nie jest to natywne rozwiązanie, bo wymaga naszych 2 produktów (S2SGT i PP2), ale może się przyda. 1. Oprócz natywnej synchronizacji Sello -> Subiekta GT chodzi nasz dodatkowy "synchronizator", który przerzuca do Subiekta GT dane potrzebne do obsługi wysyłek. S2SGT podczas synchronizacji ustawia docelowy typ dokumentu sprzedaży w polu własnym dokumentu.. To jest kwestia konfiguracji, ale można ustawić tak że jak nie ma NIPu a jest do wystawienia FV, to w polu własnym zapisuje się PA+FSd. 2. PP2 przy wystawieniu dokumentu sprzedaży i realizacji zamówienia wystawia dokument na podstawie zawartości pola własnego. Jak jest PA+FDs to wystawia te dwa dokumenty.
  7. Też nie używam programu, ale zasady połączenia są chyba podobne. Jak zauważył przedmówca podanie właściwej nazwy serwera jest konieczne. Najlepiej przepisać dokładnie to co wyświetla się przy logowaniu do Sello (nawet z nazwą komputera). Jak by nie wykrywało bazy danych, to nazwę bazy można sprawdzić w programie do zarządzania bazami od Microsoftu (SSMS). Z tego co pamiętam to w Sello przy logowaniu mogło nie wyświetlać dokładnej nazwy bazy.
  8. Na pewno są rozwiązania dodatkowe które potrafią przekazać numer listu z paczki do dokumentu
  9. Aby nie pozostawać przy jednym możliwym rozwiązaniu Jeszcze inne możliwe opcje: 1. Sello zacznie wstawiać pełny e-mail np. do opisu dokumentu (o ile już tego nie robi) 2. Użyte zostanie dodatkowe narzędzie, które teki e-mail przeniesie do dokumentu Subiekta
  10. Mamy różne interpretacje zapisu, dlatego prosiłbym o potwierdzenie: 1. Jak ktoś zaktualizuje Sello z 1.33 na 1.33.1, to pojawi mu się nowy parametr (zaznaczony) i w adresie do wysyłki transakcji będzie wstawiany adres punktu odbioru (tak jak było w wersji 1.33) 2. Jak ktoś będzie chciał aby w adresie do wysyłki pojawiał się adres do wysyłki wybrany na Allegro, to będzie musiał wyłączyć ten parametr i zmiana będzie widoczna tylko dla nowych transakcji 3. Jak ktoś zaktualizuje się z wersji starszej niż 1.33 to domyślnie do adresu wysyłki transakcji będzie zapisywany adres punktu odbioru (parametr będzie włączony)?
  11. Czy z poziomu transakcji będzie widać (będzie można sprawdzić w bazie) czy została zapisana z włączonym parametrem czy bez? Albo czy będzie inny sposób na sprawdzenie czy w adresie do wysyłki zapisanym w paczce jest adres punktu odbioru czy adres dostawy wybrany w Allegro?
  12. Zgodnie z sugestią przerobiliśmy rozwiązanie aby nie zamykać Uchwytu i wykorzystywać ten sam dla różnych dokumentów. Paragony się teraz fiskalizują. Dziękuję bardzo za podpowiedź.
  13. Tak, dla każdej operacji otwieramy nową instancję i wykonujemy akcję Dispose();. Czyli mogę rozumieć że kierunek jest właściwy, tylko może być problem z wykonaniem? .... .... try { _sfera = PolaczBezOkna(_konfiguracja, _uzytkownik); ... fiskalizator.Fiskalizuj( daneId, idDrukarki); _sfera.Dispose(); _sfera = null; } catch (Exception ex) { Loger.Instance.ZalogujBlad(ex); if (_sfera != null) { _sfera.Dispose(); _sfera = null; } PrzechwycBledy(ex); throw; }
  14. W Subiekcie GT przy wydruku dokumentu z poziomu Sfery były fiskalizowane paragony. W Subiekcie nexo wydaje się to działać inaczej. Czy da się wywołać drukowanie tak, aby wykonała się fiskalizacja wg ustawień Subiekta, czy trzeba ją osobno wymuszać? Mamy funkcję drukowania: private void DrukujDokument(Uchwyt sfera, int daneId) { IDokumenty dokumenty = _sfera.PodajObiektTypu<IDokumenty>(); Dokument dokumentDoWydruku = dokumenty.Dane .Wszystkie() .FirstOrDefault(x => x.Id == daneId); IWydruki manager = _sfera.PodajObiektTypu<IWydruki>(); TypDokumentu typ = dokumentDoWydruku.PodajTypDokumentu(); string symbol = dokumentDoWydruku.Symbol; // utworzenie zadania drukowania TypWzorcaWydruku typWzorca = TypWzorcaWydruku.DokumentSprzedazy; if (symbol == "PI") typWzorca = TypWzorcaWydruku.ParagonImienny; else if (symbol == "PA") typWzorca = TypWzorcaWydruku.Paragon; else typWzorca = TypWzorcaWydruku.DokumentSprzedazy; using (IWydruk wydruk = manager.Utworz(typWzorca)) { wydruk.ObiektDoWydruku = dokumentDoWydruku; wydruk.Drukuj(); Loger.Instance.ZalogujInformacje($"Wydruk {daneId} {dokumentDoWydruku.Symbol} z sukcesem: {wydruk.OstatniaOperacjaZakonczonaSukcesem}"); if (!wydruk.OstatniaOperacjaZakonczonaSukcesem) { var listaBledow = wydruk.PobierzListeBledow().ToList(); var zlaczone = Laczenie.ZlaczStringi(listaBledow, Environment.NewLine); Loger.Instance.ZalogujWaznaInformacje(zlaczone); } } } Po takim wydruku paragon nie jest fiskalizowany. Nie są zwracane żadne błędy podczas drukowania. W ustawieniach paragonu Subiekta nexo jest ustawione "Zawsze" dla fiskalizacji nowych i istniejących dokumentów. Próbowałem użyć interfejsu do fiskalizacji: IDokumentySprzedazy dokumenty = _sfera.PodajObiektTypu<IDokumentySprzedazy>(); DokumentDS dokument = dokumenty.Dane .Wszystkie() .FirstOrDefault(x => x.Id == daneId); IFiskalizacjaDokumentu fiskalizator = _sfera.PodajObiektTypu<IFiskalizacjaDokumentu>(); StatusFiskalizacji statusFiskalizacji = (StatusFiskalizacji) dokument.StatusFiskalizacji; Loger.Instance.ZalogujInformacje($"{daneId} status fiskalizacji: {statusFiskalizacji}"); fiskalizator.RozpoczetoFiskalizacje += FiskalizacjaRozpoczeta; fiskalizator.FiskalizacjaZablokowana += FiskalizacjaZablokowana; fiskalizator.PrzyjetoPolecenieFiskalizacji += PrzyjetoFiskalizacje; fiskalizator.ZakonczonoFiskalizacje += FiskalizacjaZakonczona; fiskalizator.Fiskalizuj( daneId, idDrukarki); Id drukarki biorę z tabeli: UrzadzeniaZewnetrzne. Wywoływane są zdarzenia rozpoczęcia i zakończenia fiskalizacji, ale paragon z drukarki nie wychodzi i z poziomu Subiekta nie ma statusu fiskalizacji. Co powinniśmy zrobić aby wymusić fiskalizację (a najlepiej aby uzależnić fiskalizację od ustawień Subiekta)?
  15. Dzięki serdeczne za przykład, ale też odwołanie jest do konkretnego wzorca: using (IWydruk wydruk = manager.Utworz(TypWzorcaWydruku.WydanieZewnetrzne)) Ja bym chciał aby wydrukować dokument niezależnie od jego typu. Na razie poradziłem sobie ifami: IDokumenty dokumenty = _sfera.PodajObiektTypu<IDokumenty>(); Dokument dokumentDoWydruku = dokumenty.Dane .Wszystkie() .FirstOrDefault(x => x.Id == daneId); IWydruki manager = _sfera.PodajObiektTypu<IWydruki>(); TypDokumentu typ = dokumentDoWydruku.PodajTypDokumentu(); string symbol = dokumentDoWydruku.Symbol; // utworzenie zadania drukowania TypWzorcaWydruku typWzorca = TypWzorcaWydruku.DokumentSprzedazy; if (symbol == "FS") typWzorca = TypWzorcaWydruku.FakturaSprzedazy; else if (symbol == "FU") typWzorca = TypWzorcaWydruku.FakturaSprzedazyUproszczona; else if (symbol == "FL") typWzorca = TypWzorcaWydruku.FakturaSprzedazyZaliczkowa; else if (symbol == "FM") typWzorca = TypWzorcaWydruku.FakturaVatMarza; else if (symbol == "PI") typWzorca = TypWzorcaWydruku.ParagonImienny; else if (symbol == "PA") typWzorca = TypWzorcaWydruku.Paragon; else if (symbol == "ZK") typWzorca = TypWzorcaWydruku.ZamowienieOdKlienta; else if (symbol == "ZD") typWzorca = TypWzorcaWydruku.ZamowienieDoDostawcy; else if (symbol == "WZ") typWzorca = TypWzorcaWydruku.WydanieZewnetrzne; else typWzorca = TypWzorcaWydruku.DokumentSprzedazy; using (IWydruk wydruk = manager.Utworz(typWzorca)) { // wskazanie obiektu do wydruku wydruk.ObiektDoWydruku = dokumentDoWydruku; // wykonanie wydruku wydruk.Drukuj(); } Ale nie wydaje mi się aby to był odpowiedni sposób
  16. Dzień dobry Próbuję przygotować generyczną funkcję wydruku dokumentu. IDokumentySprzedazy dokumenty = _sfera.PodajObiektTypu<IDokumentySprzedazy>(); Dokument dokumentDoWydruku = dokumenty.Dane .Wszystkie() .FirstOrDefault(x => x.Id == daneId); Mając już dokument, można utworzyć wydruk i wybrać dla niego wzorzec wydruku IWydruki manager = _sfera.PodajObiektTypu<IWydruki>(); IWydruk wydruk = manager.Utworz(TypWzorcaWydruku.DokumentSprzedazy); Chciałbym używać wzorca dedykowanego dla dokumentu TypWzorcaWydruku.FakturaSprzedazy TypWzorcaWydruku.ParagonImienn TypWzorcaWydruku.Paragon Jak powinno się mapować dokument na typ wzorca? Chciałem spróbować po typie dokumentu TypDokumentu typ = dokumentDoWydruku.PodajTypDokumentu(); Niestety dla PA/PI/FS zwracany jest "DokumentSprzedazy". Jest jakiś sposób aby na podstawie pobranego dokumentu użyć dedykowanego dla niego wzorca?
  17. Akurat nexo nie testowałem, ale spotkałem się z przewijaniem listy za pomocą dwóch palców a nie jednego. Może w tym przypadku będzie tak samo
  18. Jeżeli numer listu do Allegro ma być zapisywany przez Sello do należy użyć w PP2 opcji "Zapisz numer listu w Sello ze zmianą statusu" - tylko wtedy będzie ustawiana odpowiednia flaga w Sello, która wymusi synchronizację. Jeżeli numer listu do Allegro ma wstawiać ProstaPaczka to najlepiej odznaczyć opcję ignorowania komunikatów błędu - może akurat będzie wyświetlał się tam powód odrzucenia numeru listu przez Allegro. Proszę spróbować: 1. Utworzyć paczkę w Sello (ale nie otwierać jej podglądu) 2. Pobrać utworzoną paczkę i przygotować list w ProstejPaczce (najlepiej do jakiegoś kuriera 3. Dopiero po tej czynności przejść do Sello otworzyć okno podglądu paczki i sprawdzić czy uzupełniony jest numer nadania.
  19. A którą opcję zapisywania numeru do Sello (w PP2) ma Pan włączoną? Proszę sprawdzić na tym stanowisku gdzie tworzone są listy przewozowe (ustawienie jest per stanowisko) Czy podczas wstawiania numeru pokazuje się jakiś komunikat? To jest prosty zapis, który nigdy nie stanowił problemu. Może w czasie gdy PP2 zapisuje numer ma Pan otwarte okno paczki w Sello? Jeżeli jest gdzieś otwarte okno paczki i później zostanie zapisane to może nadpisać numer listu który wstawiła PP2.
  20. Dzień dobry Jeżeli problem dotyczy ProstejPaczki to zapraszamy do kontaktu bezpośredniego z nami lub napisanie na naszym forum. Proszę przesłać od razu nam ustawienia z ProstejPaczki abyśmy mogli je zweryfikować (zrzuty ekranu).
  21. Problem jest raczej globalny, bo dotyczy też naszych klientów jak i sklepów internetowych.
  22. Faktycznie w WebAPI nie jest zwracany ten znacznik. Dopiero REST APi Allegro to robi: smart - boolean - Buyer used a SMART option Dziękuję za pomoc.
  23. Witam Czy w bazie Sello można znaleźć informację, że zakup był wykonany w ramach SMART? Jeżeli mnie pamięć nie myli to Allegro zwracało taką informację w formularzu. Przeglądałem dokumentację i nie widać kolumny, która by zawierała taką flagę.
×
×
  • Dodaj nową pozycję...