Skocz do zawartości

Jarek KοIaѕa

InsERT
  • Liczba zawartości

    224
  • Rejestracja

  • Ostatnia wizyta

Zawartość dodana przez Jarek KοIaѕa

  1. Może zacznijmy od tego jak to zrobić normalnie w programie, jaki efekt chce Pan uzyskać, a potem się zastanowimy jak to zrobić Sferą. Chodzi o to, zęby zamawiający z ZK stał się na WZ nie tylko odbiorcą, ale też był wstawiony do drugiego pola "Inny nabywca" i żeby go było widać na liście, tak?
  2. 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.
  3. Kolejność jest tylko kolejnością kontrolek na UI. Wynika z tego, że są to dwa różne dokumenty. Zamawiający pozostaje/"staje się" nabywcą, a odbiorca pozostaje odbiorcą.
  4. 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;
  5. Proszę opisać jakie są to problemy z walutami. Co ma Pan na myśli pisząc "podpiąć"?
  6. 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.
  7. Proszę przenieść ustawianie jednostek miary przed ustawianie cen. Pozycje cennika nie mogą zostać utworzone jeśli nie jest znana jednostka towaru.
  8. towarBO to nazwa zmiennej. Tak czy inaczej Pański towar powinien się wziąć z linii kodu podobnej do: using (IAsortyment towar = asortymenty.Utworz()) Wówczas towar.Dane.PozycjeCennika powinien mieć tyle elementów ile jest zdefiniowanych cenników głównych.
  9. Zmienna ta służy do wyliczenia symbolu w kolejnej linii: towarBO.Dane.Symbol = "TOWAR" + id.ToString(); Wróćmy do problemu. Co znaczy "Sęk w tym, że tak jakby nie widziało żadnych cenników"? Czy kolekcja PozycjeCennika jest pusta?
  10. 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.
  11. 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();
  12. 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)); } } } }
  13. 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.
  14. Tak, to jest prawidłowe rozwiązanie dla wszystkich typów dokumentów.
  15. 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.
  16. 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ę.
  17. Tak jest. Na dole po lewej stronie. 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. 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 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?
  18. 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ł.
  19. 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ć: 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. 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. 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. 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ć. Akurat Cat111 nie napisał(a) jaki był algorytm postępowania.
  20. 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.
  21. 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).
  22. 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ę...