Skocz do zawartości

Mamut Maniek

Użytkownik
  • Liczba zawartości

    1 030
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    7

Posty dodane przez Mamut Maniek

  1. Wracając do tematu stworzyłem przykładowe zapytanie SQL, które dodaje do danej transakcji odpowiednią cechę

    DECLARE @trans_id INT = 3529752 -- identyfikator transakcji
    IF EXISTS ( SELECT 1 FROM tr__Transaction WHERE tr_Id = @trans_id ) -- jeżeli taka transakcja istnieje to...
    BEGIN
    	DECLARE @prop_id INT = (SELECT tp_Id FROM sl_TransProperty WHERE tp_Name = 'ObrobionaBL') -- sprawdzamy identyfikator cechy wg jej nazy
    	IF EXISTS (SELECT @prop_id) -- jeżeli taka cecha istnieje to..
    	BEGIN
    		IF NOT EXISTS ( SELECT tp_Id FROM tr_Property WHERE tp_TransId = @trans_id AND tp_PropId = @prop_id ) -- upewniamy się, że ta transakcja nie ma już nadanej takiej cechy..
    		BEGIN
    			DECLARE @last_tpid INT
    			EXEC spIdentyfikator 'tr_Property',1,@last_tpid OUTPUT -- wczytujemy wolny identyfikator tabeli tr_Property i dopisujemy go do liczników w tabeli ins_Ident
    			INSERT INTO "tr_Property" ("tp_Id","tp_TransId","tp_PropId") VALUES (@last_tpid,@trans_id,@prop_id) -- dodajemy cechę do transakcji
    		END
    	END
    END

     

  2. @Bartosz Rosa Czy da się odczytać dokładną nazwę sposobu wysyłki dla zamówienia np. z bazy danych? Chodzi o to, że mam zmapowane sposoby wysyłki takie jak Allegro Kurier DPD Czechy, Allegro Kurier DPD Niemcy, Allegro Kurier Słowacja jako "WzA Allegro DPD (zagraniczne)" i chce dla danego zamówienia odczytać tą dokładną nazwę sposobu wysyłki. Jakiś pomysł?

  3. Zgodnie z dokumentacją SFERY, istnieje atrybut Wiadomosc dla obiektu SuDokument, który:

    Cytat
    Zwraca obiekt Wiadomosc reprezentujący dodatkowe informacje generowane przez dokument w postaci "dymków".
    Chciałem wykorzystać tą funkcjonalność do wczytania dymka, który wyskakuje podczas tworzenia dokumentu FZ kiedy to wybiorę kontrahenta i wpiszę numer dokumentu oryginału, który już został użyty dla tego kontrahenta:
    Dymek ma treść:
    Cytat

     

    Tytuł: Numeracja
    Opis: Dla kontrahenta istnieje już dokument o takim samym numerze oryginału '165/2023'

     

    A wygląda tak:

    image.png.cc6c992946cde5237f6f6c7c59a7c61d.png
    Mój kod wygląda tak (poglądowo):
    $oDokument = $g_oSubiekt.SuDokumentyManager.DodajFZ
    $oDokument.KontrahentId = 12345
    $oDokument.NumerOryginalny = '165/2023'
    $oWiadomosc = $oDokument.Wiadomosc
    $Dymek = "Tytul: " & $oWiadomosc.Tytul & @CRLF & "Opis: " & $oWiadomosc.Opis
    ConsoleWrite($Dymek)

    Zmienna $Dymek zawiera:

    Cytat

    Tytul: Wstawianie płatnika

    Opis: 

    Przypuszczam, że została tam zapisana wartość "Wstawianie płatnika" po wykonaniu polecenia:

    $oDokument.KontrahentId = 12345

    Próbowałem też odczytać tą wartość po zapisie dokumentu i w innych miejscach ale nigdy nie udało mi się odczytać wiadomości z dymka i zawsze Opis wiadomości był pusty.

    Co robię źle lub w jaki sposób odczytać wspomniany dymek?

     

  4. 6 minut temu, Rafał L napisał:

    Bartku bardzo szanuję Twoją osobę, wiedz itp, ale nie masz racji. Przy niespełna 20 aukcjach, po dwóch fotkach (aukcje wystawione z serwisu aukcyjnego), nie obsługujemy emaili przez Sello. A baza w ciągu niespełna 2 tyg miała już ponad 1GB. Strach pomyśleć co by było, gdybyśmy 100 aukcji obsłużyli przez Sello, po 20 zamówień dziennie i mamy już 4-5GB.

    uruchom program serwisowy i sprawdź co ile zajmuje w bazie (opcja czyść bazę danych > Przelicz wszystkie)image.png.0e35c84143cfeae86feb5380f3c96280.pngimage.thumb.png.a8781e11c85ceb4a3e8386d7cd318c7c.png

  5. Rozwinę przykład przytoczony na początku postu. Poniżej screen z wydruku RW z rozbiciem na pozycje.

    image.thumb.png.b30fdea7567c1fbadd745de0ce6fe0c3.png

    Na tym dokumencie RW jest jeden towar (formatka = surowiec) w ilości 1500szt. ale on pochodzi z dwóch dostaw (685szt po cenie 1,12 i 815szt po cenie 0,95). Dowiedziałem się tego dopiero po zapisie RW. Teraz mając informacje o tych rozbitych dostawach mogę zrobić odpowiednią ilość pudełek w dobrych cenach czyli robię PW na dwie pozycje o tym samym symbolu towaru (pudełko = produkt) z innymi cenami.

    image.thumb.png.f518a9d2d537c7586ff9914eb4552d2c.png

  6. Teraz, Daniel Kozłowski napisał:

    Nie rozumiem o czym Pan pisze / co chce Pan uzyskać.

    Chcę uzyskać parę dokumentów (RW i PW) których wartość magazynowa będzie się zgadzać.

     

    1 minutę temu, Daniel Kozłowski napisał:

    Też nie rozumiem / nie widzę takiej potrzeby - po co to robić, jeśli utworzy Pan poprawnie dokument to po co to raz jeszcze sprawdzać, gdzie jak było tłumaczone wyżej z założenia wartości te mogą się różnić.

    W sumie ten punkt 6 to tylko kwestia upewnienia się czy na pewno wszystko jest ok.

  7. Wobec powyższego, czy moje założenia do stworzenia programu zarządzającym produkcją (rozchód surowca, przychód produktu) są prawidłowe?

    1. Tworzę RW na surowiec

    2. Zapisuję RW

    3. Sprawdzam każdą pozycję RW z rozbiciem na dostawy

    4. Tworzę PW zgodnie z dostawami pozycji RW

    5. Zapisuję PW

    6. Sprawdzam czy ceny magazynowe obu dokumentów się zgadzają

  8. 4 godziny temu, Daniel Kozłowski napisał:

    Najprościej przez rozbicie pozycji (o ile jest się w posiadaniu Niebieskiego).

    W jaki sposób to działa? Nigdy nie miałem Niebieskiego. Pojawia się opcja rozbicia pozycji na dostawy? Wtedy jak robię RW i dodaje towar to mogę go rozbić w dokumencie na kilka pozycji zgodnie z dostawami?

  9. W firmie gdzie produkujemy opakowania (produkt) z formatek (surowiec) dodałem rozchód wewnętrzny RW na surowiec oraz przychód wewnętrzny PW na produkt.

    Ustawiłem takie same ilości i takie same ceny ale nie zgadzają się wartości magazynowe tych dokumentów. W PW wartość magazynowa to 1545,00 a w RW to 1541,45 czyli różnica 3,55. Mimo iż cenę jednostkowo wyświetla prawidłowo czyli 1,03. Próbowałem w tym dokumencie gdzie się źle wyświetla czyli RW wejść w szczegóły pozycji i co ciekawe po przyciśnięciu OK w oknie szczegółów pozycji, przelicza w oknie edycji dokumentu już prawidłową wartość magazynową ale jak daje OK i wejdę z powrotem na edycję dokumentu to pokazuje starą wartość (tamta się nie zapisała).

    Co tutaj może być problemem? Dodam, że zaobserwowałem to tylko dla dokumentów o większej wartości właśnie coś ponad 1000,00zł.

    Screen z RW z oknem szczegółów pozycji:

    image.thumb.png.87ac338ed35003055a6239ec74ccdafd.png

    Screen z PW:

    image.thumb.png.0e1ccf257cfb047eeac6c1765cdeb632.png

  10. 3 minuty temu, MARCIN e-kupowanie.pl napisał:

    Co więcej po każdej synchronizacji Sello > WzA nadaje się kolejny nr paczki w allegro... U klientów będzie mnóstwo maili z błędnymi numerami paczek...

    U mnie to samo, 12 listów przewozowych utworzonych do tego zamówienia po sprawdzeniu po stronie Allegro...

    image.thumb.png.946730cbc871a3cf1c00dd329c46c109.png

    Czyli wychodzi na to, że jak wyskoczy błąd (0x80040E21) to przesyłka zostaje nadana mimo to.

  11. 2 minuty temu, boby bby napisał:

    Spróbujcie odświeżyć konfiguracje WzA (Ustawienia -> Słowniki -> Wysyłka towarów – sposoby wysyłki -> Edycja dostawy powiązanej z WzA -> Przycisk Konfiguracja…).

    Oczywiście tak robię, musiałem od nowa skonfigurować tą zakładkę. Czasami jak wchodzę do okna Konfiguracja to nie wczytuje żadnej dostępnej metody wysyłki. Nie wiem czy są teraz jakieś problemy z serwerem WzA czy co.

  12. Nie mogę sobie poradzić z nadaniem paczki Allegro One Punkt po zmianach po stronie Allegro (do tej pory wszystko działało). Dodam, że przesyłki typu Allegro Kurier Box, Allegro Kurier DPD czy Allegro Kurier UPS nadają się prawidłowo bez żadnych zmian z mojej strony.

    W Słowiku sposobów wysyłki w Sello ustawiłem w "Konfiguracja" odpowiednie dane i nadając paczkę dostaje np. błąd "Opis nie może być pusty". Uzupełniam opis i jak już wszystko wygląda ok to gdy odbiorę dane z Dostawcy Paczek to wyrzuca błąd o treści:

    Cytat

    Wystąpił błąd (0x80040E21)

    image.png.90df9f68b86c9a87fcdcc32fdab5a2cd.png

    Konfiguracja wygląda dobrze (porównałem ją analogicznie z ustawieniami Allegro One Box)

    Szukam pomocy, z góry dziękuję

  13. Chyba udało się takie zapytanie napisać

    SELECT DISTINCT dok_NrPelny
    FROM dok_Pozycja POZ1
    LEFT JOIN dok__Dokument DOK ON POZ1.ob_DokHanId = dok_Id
    
    GROUP BY dok_NrPelny, POZ1.ob_Id, POZ1.ob_Ilosc
    HAVING (SELECT SUM(POZ2.ob_Ilosc) FROM dok_Pozycja POZ2 WHERE POZ1.ob_Id = POZ2.ob_DoId) > POZ1.ob_Ilosc
  14. Najgorsze jest to, że natrafiłem na taką korektę przez przypadek i może być ich więcej u mnie w systemie. Chciałbym je wyszukać ale mam problemy z napisaniem odpowiedniego zapytania. Chodzi o zapytanie, które wyszuka wszystkie korekty, które w polu 'Ilość po korekcie' mają wartość mniejszą niż zero.

    Kombinuje z tablicami dok__Dokument i dok_Pozycja. Muszę powiązać pozycje korekty i faktury i porównać ich ilość z pola ob_Ilosc, zgadza się?

  15. Mam fakturę sprzedaży VAT i do niej wystawioną korektę zerującą wszystkie pozycje (klient odstąpił od umowy). Mam program do robienia korekt, który opiera się o rozszerzenie SFERA. Okazuje się, że program pozwala na zrobienie ponownej korekty do wyżej opisanej sytuacji, która koryguje pozycje zerowe (bo zostały skorygowane poprzednią korektą) na wartość -1 (czego nie pozwala interfejs robiąc taką korektę ręcznie, bo wyskakuje dymek o treści "Należy wprowadzić liczbę większą lub równą zero"). To jest przykład, gdzie interfejs zapobiega ustawieniu niepoprawnej wartości na dokumencie czego nie udało mi się wychwycić programem napisanym w oparciu o rozszerzenie SFERA. Zastanawiam się, czy w zasobach SFERA istnieje jakaś funkcja, która pomoże takie sytuacje wychwycić? Oczywiście mogę w swoim programie dodać warunek, żeby nie pozwolił wprowadzić takiej wartości ale chciałbym na przyszłość się zabezpieczyć w innych programach, żeby nie dochodziło do takiej sytuacji. Coś co wychwyci dymek lub takie mechanizmy.

    Za porady i sugestie z góry dziękuję.

    image.png

    image.png

  16. Za mną drugie czyszczenie bazy Sello w historii naszej firmy. Opisze na czym to polegało.

     

    Najpierw wykonałem kopię zapasową bazy Sello przez program MSSMS bo jest to konieczne przed wykonaniem czyszczenia (Program Serwisowy to sprawdza).

    Przed uruchomieniem czyszczenia ustawiam nowy status dla wszystkich transakcji wysłanych za pobraniem.

    Przechodzę do Sello do modułu TRANSAKCJE > WSZYSTKIE i zaznaczam filtry:

    UTWORZONE > (wybieramy zakres, który nas interesuje)
    STAN > w trakcie realizacji
    TYP > za pobraniem
    PACZKI > wszystkie towary wysłane
    potem zmianami zbiorczymi zmieniam status wybranych transakcji na "Zakończona"

    Chodzi o to, że Program Serwisowy usuwa tylko transakcje o statusie "Zakończona" lub "Anulowana"

     

    W Programie Serwisowym ustawiam:

    Usuń transakcje i paczki (starsze niż około 1-2 miesiące - można ustalić że do pierwszego danego miesiąca)


    Zdjęcia niepowiązane
    Aukcje zakończone bez transakcji - wszystkie
    Wiadomości e-mail treść - wszystkie

     

    Towary zostawiam
    Klientów zostawiam
    Aukcje wszystkie zostawiam bo nie wiem, czy zaznaczając tą opcję zostaną aukcje podpięte do transakcji, które zostaną po czyszczeniu🤔

     

    Do tego uruchamiam zapytania do bazy danych:

    Usuwanie niepowiązanych wiadomości:

    DELETE FROM em__Email 
    WHERE em_Id IN 
        (
        SELECT AU.em_Id 
        FROM vw_Email AS AU 
        WHERE (em_TransId is NULL and em_AuctionId is NULL and em_PackageId is NULL) AND (em_Status=2)
        )

    Oraz puste wpisy w tabeli em_Archive

    DELETE FROM em_Archive WHERE ear_UIDL = ''

    Można przy okazji skasować dzienniki i logi:

    truncate table jb__job
    truncate table jb_Message

    Na koniec przywracam kopię bazy danych pod nową nazwą czyli dajemy na folder Databases w MSSMS prawym przyciskiem myszy i wybieramy "Restore Database..." tam zaznaczamy "Device" i wybieramy plik .bak, zmieniamy nazwę w polu Destination Database i jeszcze w plikach po lewej "Files", potem po przywróceniu można jeszcze zmienić nazwę logiczną plików w ustawieniach bazy danych). Możemy też we właściwościach bazy ustalić nową nazwę podmiotu Database Properties > Extended Properties > nazwa

     

     

    Do tego robię skróty pracownikom, żeby w razie czego mogli się połączyć do starej bazy.

     

    No i bardzo ważna rzecz, w wyczyszczonej bazie w Sello > Ustawienia > Wysyłanie i odbieranie danych > Transakcje > Zapisuj transakcje Allegro od dnia > wpisujemy nową datę odcięcia (chociaż tak sprawdzam to teraz to chyba nie ma to znaczenia bo i tak pobiera tylko nowe transakcje)

     

    W bazie archiwalnej możemy wyłączyć pobieranie transakcji/aukcji/wiadomości w ustawieniach, żeby czasem po włączeniu się nie pobierały.

     

    W tej archiwalnej bazie również przeprowadzam czyszczenie tylko tym razem wszystko czyszczę oprócz transakcji. Transakcje trzeba usunąć te po dacie odcięcia żeby nie było dubli w jednej i drugiej bazie. Ja usuwanie robię ręcznie (przez makro). Trzeba trochę pokombinować bo te transakcję mogą mieć paczkę/dokument i nie jest to tak łatwo usunąć.

     

    Wskazówka: Podczas procesu czyszczenia (wtedy kiedy czekamy), najlepiej zmniejszyć okienko "Czyszczenie bazy danych" do małych rozmiarów i pochować inne okna. Jak proces się kończy to zdarza się, że ta wiadomość wyskoczy ale gdzieś w tle i można to przegapić.

    • Lubię to 1
    • Dziękuję 1
  17. Dzisiaj konfigurowałem WZA - Allegro One Box i trzeba wybrać usługę w Sello jako

    Cytat

    Umowa Allegro - ALLEGRO (Allegro One (UPS))

    Rozwiązuje to problem z komunikatem

    Cytat

    Nie można użyć wybranej usługi ponieważ jest ona niezgodna z zamówioną przez kupującego metodą dostawy

     

    Trzeba też usunąć pola w sekcji "ADRES NADAWCY NA ETYKIECIE" co rozwiązuje problem z komunikatem 

    Cytat

    Opcja 'Inne dane na etykiecie' nie są dostępne dla wybranego przewoźnika

    Występują też problemy z polem Numer referencyjny (który najlepiej też ustawić jako pusty) oraz Nazwa (wpisać dwa człony najlepiej Imię i Nazwisko) oraz Firma (wpisać ręcznie)

    W polu Opis zawartości dałem tag [Transakcja::DokumKoncowy]

    • Lubię to 1
×
×
  • Dodaj nową pozycję...