Radomił Ząbik 308 Napisano 24 Marca 2023 Udostępnij Napisano 24 Marca 2023 w [Sfera] Problem z Odebrał/Wystawił na WZ, po wypełnieniu na podstawie ZK Mam kod, który wypełnia pozycje WZ, na podstawie pozycji ZK, i od jakiegoś miesiąca mam problem, że na WZ zarówno w Odebrał jak i Wystawił, mam osobę zalogowaną, pracownika firmy, zamiast adekwatnie jako wystawiającego pracownika firmy, a odbierającego odpowiedniego przedstawiciela z FP/ZK. Aby było ciekawej, to ten sam kod mam na kilku podmiotach, u różnych klientów, i kaszani się tylko u jednego - nie znalazłem aby było jakieś ustawienie za to odpowiedzialne. Poniżej kawałek kod odpowiedzialny za parametry grupowania oraz wczytanie pozycji - właśnie po nich się kaszani: // przeniesienie parametrów z ZK ParametryGrupowaniaPodstawowe parametryGrupowania = new ParametryGrupowaniaPodstawowe(); parametryGrupowania.MetodaGrupowaniaPozycji = MetodaGrupowaniaPozycji.BezKonsolidacji; parametryGrupowania.MetodaWyliczeniaCen = MetodaWyliczeniaCen.PrzepisanieZDokumentuGlownego; parametryGrupowania.MiejsceDostawy = zk.MiejsceDostawy; parametryGrupowania.MiejsceDostawyTyp = MiejsceDostawyTyp.Nabywca; parametryGrupowania.NabywcaSprzedawca = zk.NabywcaSprzedawcaWybrany ?? zk.PodmiotWybrany; IAplikatorSkutkowMagazynowych aplikatorSM = (IAplikatorSkutkowMagazynowych)wz; // wypełnienie pozycji na podstawie ZK foreach (var posadd in results.pos) { int posdocid; int posid; decimal posq; string comment; posdocid = posadd.docid; posid = posadd.id; posq = posadd.quantity; comment = posadd.comment; var zamowienie = zamowienia.Dane.Wszystkie().Where(p => p.Id == posdocid).FirstOrDefault(); // znalezienie zamówienia var poz = wz.WypelnijNaPodstawieZK(zamowienie.Pozycje.Where(p => p.Id == posid), zamowienie, parametryGrupowania).Single(); // dodanie pozycji z ZK poz.Opis = comment; poz.CenaRecznieEdytowana = true; poz.Ilosc = posq; // ustawiamy na 0, wyjdzie z rozbicia aplikatorSM.AplikujSkutkiMagazynowe(poz); } Jak Sobie wyrzucam do konsoli wartości Wystawil/Odebral, to mam odpowiednio: - Początek - utworzenie WZ - Grupowanie - ustawienie parametrów grupowania - Pozycje - po wczytaniu pozycji z ZK i tam następuje podmiana Skończyły mi się pomysły, nie wiem, coś brakuje w parametrach grupowania? Link to postu
Wojciech Szopiński 227 Napisano 24 Marca 2023 Udostępnij Napisano 24 Marca 2023 w [Sfera] Problem z Odebrał/Wystawił na WZ, po wypełnieniu na podstawie ZK Proszę napisać jak są uzupełnione pola: Odebral OdebralaOsobaId Wystawil WystawilaOsobaId dla tego zamówienia. Czy zamówienie (zamówienia?), które są realizowane mają uzupełniony numer oryginału (w bazie jest to kolumna NumerZewnetrzny)? Link to postu
Radomił Ząbik 308 Napisano 24 Marca 2023 Autor Udostępnij Napisano 24 Marca 2023 w [Sfera] Problem z Odebrał/Wystawił na WZ, po wypełnieniu na podstawie ZK (edytowane) Ok, dodałem logowanie danych z zamówienia wczytanego, proszę. Znam myk Wystawil/Odebral, i go sprawdzałem, na moje jest ok w Zamówieniu. ZK robione są Sferycznie, gdzie nie ustawiam Wystawiającego, jeśli jest to ustawiam Odbierającego, a dopiero potem ewentualnie dodaje numer oryginału. 2023-03-24 12:45:52 - dodawanie WZki do wybranych pozycji. Początek - Wystawil: Bogumił Początek - Odebral: Grupowanie - Wystawil: Bogumił Grupowanie - Odebral: Zamówienie - Wystawil: Bogumił Zamówienie - Wysta.ID: 136866 Zamówienie - Odebral: Adam Zamówienie - Odeb.ID: 140001 Zamówienie - Oryginal: Zamówienie - Wystawil: Bogumił Zamówienie - Wysta.ID: 136866 Zamówienie - Odebral: Adam Zamówienie - Odeb.ID: 140001 Zamówienie - Oryginal: Zamówienie - Wystawil: Bogumił Zamówienie - Wysta.ID: 136866 Zamówienie - Odebral: Adam Zamówienie - Odeb.ID: 140001 Zamówienie - Oryginal: Zamówienie - Wystawil: Bogumił Zamówienie - Wysta.ID: 136866 Zamówienie - Odebral: Adam Zamówienie - Odeb.ID: 140001 Zamówienie - Oryginal: Pozycje - Wystawil: Bogumił Pozycje - Odebral: Bogumił Osoba - Wystawil: Bogumił Osoba - Odebral: Bogumił 2023-03-24 12:45:56 - dodano WZkę: WZ/131/03/2023 2023-03-24 12:45:57 - Drukowanie WZki: WZ/131/03/2023 2023-03-24 12:45:58 - Wydrukowano: wz238198.pdf Log tak biorę: var zamowienie = zamowienia.Dane.Wszystkie().Where(p => p.Id == posdocid).FirstOrDefault(); // znalezienie zamówienia Console.WriteLine("Zamówienie - Wystawil: " + zamowienie.Wystawil); Console.WriteLine("Zamówienie - Wysta.ID: " + zamowienie.WystawilaOsobaId); Console.WriteLine("Zamówienie - Odebral: " + zamowienie.Odebral); Console.WriteLine("Zamówienie - Odeb.ID: " + zamowienie.OdebralaOsobaId); Console.WriteLine("Zamówienie - Oryginal: " + zamowienie.NumerZewnetrzny); var poz = wz.WypelnijNaPodstawieZK(zamowienie.Pozycje.Where(p => p.Id == posid), zamowienie, parametryGrupowania).Single(); // dodanie pozycji z ZK Edytowane 24 Marca 2023 przez Radomił Ząbik Link to postu
Radomił Ząbik 308 Napisano 24 Marca 2023 Autor Udostępnij Napisano 24 Marca 2023 w [Sfera] Problem z Odebrał/Wystawił na WZ, po wypełnieniu na podstawie ZK I jak coś sprawdziłem Id, w tablicy Osoby, zgadzają się: Dlatego już zgłupiałem i nie wiem, gdzie robię błąd. A ujawnił się jakoś dziwnie po aktualizacji do wersji 43 i świeżej kompilacji na aplikacji zrobionej na waszym szablonie. Link to postu
Wojciech Szopiński 227 Napisano 27 Marca 2023 Udostępnij Napisano 27 Marca 2023 w [Sfera] Problem z Odebrał/Wystawił na WZ, po wypełnieniu na podstawie ZK (edytowane) Te zamówienia jak rozumiem są wystawiane sferą, tak? Bo jeśli dodamy takie samo zamówienie w Subiekcie w dwóch wersjach (z numerem oryginału i bez) to efekt w bazie jest następujący: Proszę zwrócić uwagę, że identyfikator osoby dla "przedstawiciela" zamawiającego zawsze jest null. Dzieje się tak ponieważ to pole na formatce można wypełniać "z ręki" i nie zapisujemy tam nigdy powiązania z osobą. U Pana na zamówieniu ustawione jest powiązanie z osobą wystawiającą jak i odbierającą dlatego występuje opisany efekt. Edytowane 27 Marca 2023 przez Wojciech Szopiński Link to postu
Radomił Ząbik 308 Napisano 27 Marca 2023 Autor Udostępnij Napisano 27 Marca 2023 w [Sfera] Problem z Odebrał/Wystawił na WZ, po wypełnieniu na podstawie ZK Hmm, w ZK nie uzupełniam w ogóle osoby wystawiającej - zakładam, że powinna podłożyć się sama. Następnie, jeśli mam przedstawiciela, to dodaję go normalnie jako obiekt Osoba. Dopiero na koniec, dodaje numer zewnętrzny. Czyli trzeba by było, tak czy siak ustawiać obie osoby, zawsze i adekwatnie czyścić osobę po stronie odbiorcy, jeśli nie istnieje? Link to postu
Radomił Ząbik 308 Napisano 27 Marca 2023 Autor Udostępnij Napisano 27 Marca 2023 w [Sfera] Problem z Odebrał/Wystawił na WZ, po wypełnieniu na podstawie ZK No rzeczywiście nie mam NULL w bazie: SELECT wz.Id ,wz.NumerWewnetrzny_PelnaSygnatura[NumerWZ] ,zk.NumerWewnetrzny_PelnaSygnatura[NumerZK] ,zk.Wystawil ,zk.WystawilaOsobaId ,zk.Odebral ,zk.OdebralaOsobaId FROM ModelDanychContainer.Dokumenty AS wz INNER JOIN ModelDanychContainer.DokumentDokument AS dd ON dd.DokumentyRealizujace_Id=wz.Id INNER JOIN ModelDanychContainer.Dokumenty AS zk ON zk.Id=dd.DokumentyRealizowane_Id WHERE wz.NumerWewnetrzny_PelnaSygnatura='WZ/131/03/2023' Wynik: I trochę nie rozumiem, czemu musi być NULL, na osobie, która jest przedstawicielem? Przecież mam go w podmiocie, nie bierze się z nikąd. W dodatku to działało Sobie spokojnie do wersji 41 - potem skleiłem rozwiązanie na nowo, w VS 2022, na nowym szablonie itp. aby było 100% zgodne z nowymi frameworkami. W kodzie dodawania ZK, mam tylko to w temacie: // przedstawiciel if (results.person != null) { int person; person = results.person; zk.Dane.OdebralaOsoba = podmioty.Dane.Wszystkie().Where(p => p.Osoba.Id == person).FirstOrDefault().Osoba; } // numer oryginalu if (results.oryginal != null) { string oryginal = results.oryginal; zk.Dane.NumerZewnetrzny = oryginal; } Link to postu
Wojciech Szopiński 227 Napisano 27 Marca 2023 Udostępnij Napisano 27 Marca 2023 w [Sfera] Problem z Odebrał/Wystawił na WZ, po wypełnieniu na podstawie ZK Takie założenie było od dawna, że identyfikator osoby będącej przedstawicielem nie jest ustawiany na dokumencie - tak jak napisałem w interfejsie to pole można dowolnie edytować, a wybór osoby z combo-boxa ustawia tylko treść w kolumnie Odebral (lub Wystawil w przypadku zamówienia z numerem oryginału). Ciężko jest mi powiedzieć dlaczego wcześniej działało to u Pana inaczej, ale z analizy kodu wynika, że przepisywanie wartości w polu Odebral z zamówienia działa tak jak teraz od wersji 26 i jeśli na zamówieniu wskazanym jako główne jest wypełniona kolumna OdebralaOsobaId to jako odebrał do WZki przepisuje się Wystawil z zamówienia (czyli przedstawiciel klienta będzie odbierającym wydanie zewnętrzne). Link to postu
Radomił Ząbik 308 Napisano 27 Marca 2023 Autor Udostępnij Napisano 27 Marca 2023 w [Sfera] Problem z Odebrał/Wystawił na WZ, po wypełnieniu na podstawie ZK No ok, zmieniam w kodzie, zobaczymy. Rzeczywiście, to jest jedyny klient, u którego jest przypisywany przedstawiciel, stąd nie udało mi się wykryć tego zachowania. Swoją drogą, nie warto by zabezpieczyć sferycznie FP/ZK, przed wprowadzaniem tego identyfikatora osoby? Link to postu
Wojciech Szopiński 227 Napisano 27 Marca 2023 Udostępnij Napisano 27 Marca 2023 w [Sfera] Problem z Odebrał/Wystawił na WZ, po wypełnieniu na podstawie ZK Postaramy się wprowadzić jakieś zabezpieczenie przed takim zachowaniem sfery. Link to postu
Infobot nexo 99 Napisano 26 Czerwca 2023 Udostępnij Napisano 26 Czerwca 2023 w [Sfera] Problem z Odebrał/Wystawił na WZ, po wypełnieniu na podstawie ZK Zgłoszenie zostało zrealizowane w wersji 46.0.0. Fragment listy zmian: "Poprawiono ustawianie osoby wystawiającej i odbierającej dokument realizujący zamówienie od klienta. Dotychczas, w specyficznych kombinacjach danych zamiast przepisać osoby z dokumentu realizującego, program ustawiał na dokumencie realizowanym zalogowanego użytkownika."; Link to postu
Polecane posty