Skocz do zawartości

Jarek KοIaѕa

InsERT
  • Liczba zawartości

    224
  • Rejestracja

  • Ostatnia wizyta

Posty dodane przez Jarek KοIaѕa

  1. Tak po prostu działa Subiekt nexo. Jeśli nie podamy specjalnie innego odbiorcy i innego nabywcy na ZK to właśnie zamawiający pełni funkcję zarówno nabywcy jak i odbiorcy (dlatego nazwy pozostałych pól zaczynają się od Inny) a potem na WZ również pełni rolę zarówno nabywcy jak i odbiorcy. Jest po prostu naszym klientem, który najpierw zamawia, potem odbiera, a na końcu płaci za dostarczone towary. To uważam jest logiczne. Inny, znaczy inny niż ten widniejący na dokumencie.

  2. W omawianej sytuacji najlepiej użyć metody

    IWydanieZewnetrzne.WypelnijNaPodstawieZK(IEnumerable< PozycjaDokumentu> , Dokument, ParametryGrupowaniaPodstawowe)

    , która jest właśnie przewidziana do scenariusza realizacji ZK za pomocą WZ.

    using (var wz = dokumentyWydan.Utworz(konfWz))
    {
        ParametryGrupowaniaPodstawowe parametryGrupowania = new ParametryGrupowaniaPodstawowe();
        parametryGrupowania.MetodaGrupowaniaPozycji = MetodaGrupowaniaPozycji.BezKonsolidacji;
        parametryGrupowania.MetodaWyliczeniaCen = MetodaWyliczeniaCen.PrzepisanieZDokumentuGlownego;
        parametryGrupowania.MiejsceDostawy = zamowienie.MiejsceDostawy;
        parametryGrupowania.MiejsceDostawyTyp = MiejsceDostawyTyp.Nabywca;
        parametryGrupowania.NabywcaSprzedawca = zamowienie.NabywcaSprzedawcaWybrany;
        parametryGrupowania.OdbiorcaDostawca = zamowienie.OdbiorcaWybrany;
    
        wz.WypelnijNaPodstawieZK(zamowienie.Pozycje, zamowienie, parametryGrupowania);
        if (zamowienie.KursWalutyDokumentu != null)
            wz.Dane.KursWalutyDokumentu.Kurs = zamowienie.KursWalutyDokumentu.Kurs;
    
        if (!wz.Zapisz())
            wz.WypiszBledy();
    }

    Dodatkowo, jeśli chce się później poprawnie np. przeliczać czy rozliczać WZ, należy przed zapisaniem przenieść kurs z ZK, czyli np.
     

    if (zamowienie.KursWalutyDokumentu != null)
        wz.Dane.KursWalutyDokumentu.Kurs = zamowienie.KursWalutyDokumentu.Kurs;

     

  3. WypelnijNaPodstawie jest metodą służącą w założeniu do powielania dokumentów, więc może coś skopiować, bo struktura dokumentów jest podobna, ale nie możemy zapewnić, że to będzie biznesowo sensowne. Metoda DodajPozycjeNaPodstawieInnejPozycji przeznaczona jest do dodawanie pozycji na podstawie listy ostatnich cen sprzedaży/zakupu towaru, więc też nie złuży do takiego scenariusza.

    Należy więc samodzielnie zaimplementować wystawienie jednego dokumentu na podstawie drugiego.

  4. Zacytowana część kodu dotyczy dodawania towaru i przy tej okazji ustawiania jego cen w cennikach głównych. Czy w Pańskim przypadku również jest to etap dodawania towaru (przed zapisem) czy jest to inny scenariusz? Jeśli jest to zmiana cen towarów, należy to wykonywac od strony cennika, czyli załadować cennik do edycji i zmieniać jego pozycje. Jak to robić optymalnie opisuje rozdział Model obiektowy - Pozycje uproszczone.

  5. Nie ma czegoś takiego w Sferze jak oddział i magazyn dla użytkownika Sfery. Jest to kontekst pracy, który musi zapewnić tworzona aplikacja.

    Oddział, magazyn i stanowisko kasowe muszą być podane konkretne i to chyba jest jasne. Żeby się to dało zapisać to między nimi muszą zachodzić odpowiednie powiązania typu magazyn należy do odziału oraz stanowsko nalezy do oddziału tak jak to Pan zauważył i zaimplementował w przykładowym kodzie.

    W przypadku "głównego oddziału" jednostką organizacyjną jest centrala, a nie oddział i być może stąd jest problem, bo odd jest wówczas null.

    Żeby znaleźć Centralę:

    JednostkaOrganizacyjna odd = sfera.PodajObiektTypu<ICentrale>().Dane.Znajdz();

     

  6. Stosowna poprawka pojawiła się w wersji 11.1.0.

    Jak w prosty sposób można dodać obiekt (dokument) do biblioteki i przypisać go do asortymentu o symbolu POYAR01:

    public void DodajZalacznikDoAsortymentu()
    {
        using (var sfera = UruchomSfere())
        {
            IAsortymenty asortymenty = sfera.PodajObiektTypu<IAsortymenty>();
            IObiektyBibliotekiDokumentow biblioteka = sfera.PodajObiektTypu<IObiektyBibliotekiDokumentow>();
            Asortyment aso = asortymenty.Dane.Wszystkie().Where(a => a.Symbol == "POYAR01").FirstOrDefault();
            if (aso != null)
            {
                using (var dok = biblioteka.Utworz())
                {
                    dok.Wypelnij(@"c:\temp\karta_produktu_POYAR01.pdf");
                    dok.Przypisz(aso);
                    if (!dok.Zapisz())
                    {
                        Debug.WriteLine("Błędy zapisu obiektu biblioteki dokumentów:");
                        dok.WypiszBledy();
                    }
                }
            }
        }
    }

    Jak wyeksportować wszystkie załączniki przypisane elementom kartoteki asortymentu do pliku:

    public void PobierzZalaczniki()
    {
        using (var sfera = UruchomSfere())
        {
            IAsortymenty asortymenty = sfera.PodajObiektTypu<IAsortymenty>();
            IEnumerable<Asortyment> lista = asortymenty.Dane.Wszystkie().Where(z => z.BibliotekaDokumentow.Any());
    
            IObiektyBibliotekiDokumentow bib = sfera.PodajObiektTypu<IObiektyBibliotekiDokumentow>();
            foreach (var aso in lista)
            {
                foreach (var obiekt in aso.BibliotekaDokumentow)
                    using (var dok = bib.Znajdz(obiekt))
                    {
                        dok.Pobierz(string.Format(@"c:\temp\zalacznik_{0}_{1}.{2}", aso.Symbol, dok.Dane.Nazwa, dok.Dane.Typ));
                    }
            }
        }
    }

     

  7. Tak, oczywiście jest taka możliwość. Przykład:

    IDokumenty doki = sfera.PodajObiektTypu<IDokumenty>();
    Dokument dok = doki.Dane.WszystkieDokumentyMagazynowe()
        .Where(d => d.NumerWewnetrzny.PelnaSygnatura == "PW 2/MAG/2016").Single();
    using (IPrzychodWewnetrzny pw = (IPrzychodWewnetrzny)doki.Znajdz(dok))
    {
        IDokumentZRozbiciem dokR = (IDokumentZRozbiciem)pw;
        IRozbiciePozycjiPrzyjeciowe roz = (IRozbiciePozycjiPrzyjeciowe)dokR.RozpocznijRozbicie(pw.Dane.Pozycje.First());
        IPozycjaRozbiciaPrzyjeciowa pozycjaRozbicia = roz.Pozycje.First();
        pozycjaRozbicia.KodDostawy = "kod dostawy zmieniony " + DateTime.Now;
        pozycjaRozbicia.OpisDostawy = "opis dostawy zmieniony " + DateTime.Now;
        roz.ZakonczRozbicie();
        if (!pw.Zapisz())
            pw.WypiszBledy();
    }

    Co do czystości innych rozwiązań to są to tylko pola informacyjnie, więc zmiany w bazie nie są groźne o ile ktoś wie co robi. :)

  8. Witam w części forum poświęconej ogólnym sprawom technicznym, a więc począwszy od instalacji, aż po tworzenie rozwiązań własnych rozszerzających możliwości nexo.

     

    Zachęcam również do odwiedzenia strony e-Pomocy technicznej, gdzie można znaleźć odpowiedzi na najczęściej pojawiające się pytania. Tematy ogólne są oznaczone z programu: InsERT nexo.

     

    Osoby zainteresowane rozszerzaniem funkcji InsERT nexo zachęcam do zapoznania się z nexo SDK, które można pobrać ze stron Insertu o produktach nexo linii PRO, np. Subiekt nexo PRO. Link znajduje się w części Dodatkowe rozwiązania dostępne w wersji PRO.

  9. Dostęp do najistotniejszych dla sprzedawcy funkcji WebAPI Allegro jest możliwy tylko z podaniem nazwy użytkownika i jego hasła. Tego nie da się więc uniknąć. Inne serwisy aukcyjne stosują inne metody autoryzacji właśnie po to, żeby hasła użytkowników nie były składowane poza systemem samego serwisu, że tak enigmatycznie napiszę. :)

  10. Witam, dziękuję za odpowiedź. A gdzie znajdę pasek statusu? na dole po lewej stronie?

     

    Tak jest. Na dole po lewej stronie.

     

    Program robi coś po otwarciu ale potem info z tamtąd znika więc chyba pobrał co chciał ale nadal sobie nie radzi. Czy mogę jakoś sprawdzić(jak?) czy pobrał kategorie i ewentualnie wymusić na nim pobranie ich? (jak?)

     

    Jeśli znika info (a dokładniej wtedy gdy zniknie "kółeczko") wszystkie konieczne są pobrane. Można to sprawdzić próbując dodać aukcję. Jeśli nie są pobrane parametry z serwisu, nie będą wypełnione następujące elementy:

    - lista czasów trwania aukcji

    - lista krajów

    - lista regionów (województw)

    - lista form płatności

    - lista sposobów transportu

    - lista sposobów wyróżnienia aukcji

     

    Pobieranie parametrów można wymusić funkcją głównego menu (klikamy diabełka): Narzędzia-Synchronizuj parametry z serwisu. Program wówczas porównuje wersje grup parametrów w bazie danych z wersją na serwisie aukcyjnym. Jeśli coś się zmieniło, wywołuje aktualizację tej grupy. grup de facto nie widać, ale chodzi o kategorie, parametry formularza oraz atrybuty specyficzne dla kategorii.

     

    cośtam pobiera, pobrał kategorie ale ciągle są błędy typu "nie mozna zapisać aukcji"

     

    No właśnie bardzo mnie interesuje jaki doładnie jest ten błąd i w jakiej sytuacji. Najlepiej wkopiować tutaj raport. Już to opisywałem tutaj: http://forum.sello.pl/index.php?topic=13.msg33#msg33

    sprawa druga.. jak usunąć profil? gdy to robię wyskakuje komunikat że nie można usunąć profilu...

     

    Czy przez profil rozumiesz informacje o koncie w serwisie aukcyjnym? Jeśli tak to najprawdopodobniej sa z nim już związane jakieś aukcje, a może nawet transakcje i wiadomości. Usunięcie go wymagałoby uprzedniego usunięcia tych wszystkich elementów. Każdy z nich też kieruje się podobnymi prawami, a więc np. trzeba by usunąć najpierw wiadomości, potem transakcje, a na końcu aukcje. Szczerze mówiąc nie przewidywaliśmy możliwości usunięcia takiego konta, dla którego istnieją dane w bazie (aukcje, transakcje etc.) Chyba, że za pomoca jakiejś specjalnej funkcji serwisowej, która wyczyściła by te dane. Wtedy usunięcie konta byłoby możliwe.

    Czy rzeczywiście jest potrzebna funkcjonalność usuwania takiego konta, czy chodzi po prostu o rozpoczęcie pracy od nowa, żeby np. przetestować, czy po ponownym wpisaniu konta przetestować pobieranie danych z serwisu?

  11. I jak? Any ideas?

    Potestowałbym dalej już z chęcią....

     

    Jest to problem z dostępem do bazy danych, ale nie wiem dokładnie skąd się bierze, dlatego jest cicho. Skoro są chęci, za co dziękuję, to proszę może  spróbować zmniejszyć zakres pobieranyc danych. Np. ściągnąć tylko zakończone w ciągu 7 dni, potem zakres rozszerzać jeśli będzie OK. Ale to taki luźny pomysł.

  12. wyskakują same błędy w raporcie coś o kategoriach tam mówi, co może być nie tak?

     

    Pobranie z serwisu aukcyjnego informacji o aukcjach wymaga wcześniejszego pobrania parametrów z serwisu takich jak: kategorie, atrybuty specyficzne dla kategorii, parametry aukcji (formy płatności i transportu, lista krajów, województw, opcje wyróżnień itp).

    Po założeniu nowej bazy danych i podaniu parametrów konta w serwisie należy więc poczekać z pobieraniem informacji z serwisu, aż skończy się aktualizacja parametrów. Proces ten jest uwidoczniony w pasku statusu.

     

    [ciach]

     

    Normalnie nie mogę się powstrzymać: :D

    Ale gupoty..... Jakbym widział odpowiedź administratorów Allegro - ładnie, duzo i nie na temat.

     

    Bez przesady. Pytanie było postawione: "Jaka może być przyczyna?". W tym konkretnym przypadku (problem z kategoriami) może być taka jak napisałem. Rozumiem rozgoryczenie problemami działania tej wersji (BETA3) ale szczególnie na tym etapie uważam, że problemy należy wyjaśniać szczegółowo i szukać wszelkich możliwych przyczyn ich powstawania.

     

    Co ma pobranie kategorii z serwisu do POBIERANIA aukcji trwających czy komentarzy? Nic. To może mieć wpływ co najwyżej na wystawiane aukcje.

    Pracuję przy pomocy programów wspomagających sprzedaż od 4 lat troszkę już pojęcia jak funkcjonyje Allegrowe WebApi już złapałem.

     

    Nie wątpię. Jednak Sello jest nowym produktem. Jest w tej chwili tak skonstruowane, że akurat pobieranie kategorii z serwisu ma wielkie znaczenie dla pobierania aukcji. I to właśnie napisałem.

     

    Moja sugestia to bardziej sczegółowy LOG błędów. Bo jak mi sypnie błędem i napisze - błąd pobierania komentarzy - to można to olać. Ale jak nie pobierze wszystkich kontrahentów - to już problem.

     

    Nie znamy dokładnie błędu, który sie pojawił. Jak sądzę nie był to błąd pobierania komentarzy, ale właśnie aukcji.

     

     

    A błędy komunikacyjne z Allegro zdarzają się nader często.

     

     

    Po to jest m.in. wersja BETA, żeby takie rzeczy przetestować w warunkach nielaboratoryjnych. Nie tylko po to, żeby pochwalić się nowym, świetnym produktem. Myślę, że tego nie trzeba tłumaczyć.

     

     

    P.S.

    Tak - zaktualizowaliśmy najpierw program, a dopiero później pobieraliśmy dane.

    I się nie da - sypie błędami.

     

     

    Akurat Cat111 nie napisał(a) jaki był algorytm postępowania.

  13. wyskakują same błędy w raporcie coś o kategoriach tam mówi, co może być nie tak?

     

    Pobranie z serwisu aukcyjnego informacji o aukcjach wymaga wcześniejszego pobrania parametrów z serwisu takich jak: kategorie, atrybuty specyficzne dla kategorii, parametry aukcji (formy płatności i transportu, lista krajów, województw, opcje wyróżnień itp).

    Po założeniu nowej bazy danych i podaniu parametrów konta w serwisie należy więc poczekać z pobieraniem informacji z serwisu, aż skończy się aktualizacja parametrów. Proces ten jest uwidoczniony w pasku statusu.

     

    Jak widać synchronizacja parametrów ma największe znaczenie na początku pracy z programem, kiedy nie ma jeszcze żadnych informacji w bazie. Potem odbywa sie tylko ich aktualizacja, więc można rozpocząć normalną pracę od razu. W najgorszym przypadku dodamy aukcję np. w kategorii, która za chwilę okaże się już nieaktualna (po synchronizacji parametrów z serwisem). Zostaniemy jednak o tym poinformowani przez serwis aukcyjny przy próbie wysłania/wystawienia takiej aukcji.

  14. Niestety - przy pobieraniu danych jest ciągły błąd, a nawet trzy:

    [...]

     

    Proszę o przesłanie kompletnych danych z Raportu. Najłatwiej zrobić to przez otwarcie Raportu, zaznaczenie wszystkich rekordów (Ctrl+A), a następnie skopiowanie wybranych danych do schowka (Ctrl+Shift+C), a następnie wklejenie zawartości schowka w nową wiadomość (Ctrl+V).

  15. Komunikat:

    An installation  package for the product Microsoft SQL Server Native Client cannot be found. Try the installation again using a valid copy of the installation package 'sqlncli.msi'

     

    Windows XP Home aktualizowany na bieżąco.

     

    Wg Microsoft problem taki może wystąpić w sytuacji, gdy SQL Native Client jest już zainstalowany. Jako obejście problemu proponuje odinstalowanie SQL Native Client za pomocą poprzez Dodaj/usuń programy, a następnie ponowne zainstalowanie SQL Server.

     

    Źródło: http://support.microsoft.com/?kbid=910229

×
×
  • Dodaj nową pozycję...