Skocz do zawartości

Błąd relizowania ZK, po wystawieniu WZ

Polecane posty

Realizujemy zamówienia za pomocą Sfery, wystawiając WZ. Kod umieszczam na końcu posta. Od jakiegoś miesiąca, od wersji 18.0.1, zaczęły nam się sporadycznie pojawiać (dokładnie 4 przypadki, na 1400 WZ), sytuacje, w których WZ, nie realizuje ZK i potem wygląda to następująco w systemie:

wz_zk.thumb.JPG.1bd38a6901925ede6ecbbba94bcfd814.JPGwz_wz.thumb.JPG.476be51d6e1b3962f2f6cb7108331718.JPGwz_mapa_powiazan.thumb.JPG.d56b698bd8735dda05c517f2970afa86.JPG

 

                  using (IWydanieZewnetrzne wz = dokumentWydania.Utworz(konfWz))
                    {
                  	ParametryGrupowaniaPodstawowe parametryGrupowania = new ParametryGrupowaniaPodstawowe();
                    parametryGrupowania.MetodaGrupowaniaPozycji = MetodaGrupowaniaPozycji.BezKonsolidacji;
                    parametryGrupowania.MetodaWyliczeniaCen = MetodaWyliczeniaCen.PrzepisanieZDokumentuGlownego;
                    parametryGrupowania.MiejsceDostawy = zk.MiejsceDostawy;
                    parametryGrupowania.MiejsceDostawyTyp = MiejsceDostawyTyp.Nabywca;
                    parametryGrupowania.NabywcaSprzedawca = zk.NabywcaSprzedawcaWybrany;
                  	
                  	wz.Dane.Magazyn = mag;
                  	wz.Dane.Uwagi = results.comment;
                  	wz.Dane.StatusDokumentu = statusyDD.Rozchod_WydanyTowar;
                  	
                  	IDokumentZRozbiciem dok = (IDokumentZRozbiciem)wz;
                  	
                  	// wypełnienie pozycji
                  	foreach(var posadd in results.pos)
                  	{
                  	int posdocid; int posid; decimal posq; int posbatch; string comment;
                  	posdocid = posadd.docid; posid = posadd.id; posq = posadd.quantity; posbatch = posadd.batch; comment = posadd.comment;
                  		
                  	Console.WriteLine("Pobieranie pozycji: "+posid+" z ZK "+posdocid);
                  	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
                  	Console.WriteLine("Dodanie pozycji: "+posid+", "+poz.AsortymentAktualny.Nazwa);
                  	poz.Opis = comment;
                    poz.Ilosc = 0; // ustawiamy na 0, wyjdzie z rozbicia   
                    var r = dok.RozpocznijRozbicie(poz) as IRozbiciePozycjiRozchodowe;
                    Console.WriteLine("Wprowadzenie partii: " + posbatch + " w ilości " + posq);
                    r.Pozycje.Where(p => p.PartiaZrodlowa.Id == posbatch).Single().Ilosc = posq;
                    foreach (var pozr in r.Pozycje.Where(p => p.PartiaZrodlowa.Id != posbatch && p.Ilosc > 0m)) pozr.Ilosc = 0m;
                    Console.WriteLine("Partia wprowadzona: " + posbatch);
                    r.ZakonczRozbicie();
                    
                    Console.WriteLine("Ilość na pozycji: " + poz.Ilosc);
                    
                    wz.Przelicz();
                  	}
                  ...

 

Link to postu

Jak rozumiem chodzi o to, że ZK automatycznie nie zmieniło statusu za Zrealizowane? Co pokazuje kolumna stan realizacji w widoku zamówień oraz kolumna stan realizacji w widoku 'Asortyment zamówiony'? Czy mógłby Pan zajrzeć do tabeli StanyRealizacjiZamowien? Przechowuje ona dodatkowe dane o realizacji całego zamówienia oraz poszczególnych pozycji. W szczególności chodzi mi o kolumny 'ProcentowyStanRealizacji', 'ZrealizowanaIlosc' oraz 'ZrealizowanaIloscZeSkutkiem'.

Link to postu

A więc tak to wygląda na tablicy StanyRealizacjiZamowien:

StanyRealizacjiZamowien.thumb.PNG.21c9a51f74bb484b88beefa68aa52818.PNG

Dodatkowo, sprawdziłem Sobie jedną z pozycji ZK i jej realizacje w typ dokumentu 4 (WZ) i mam taki zapis, który w sumie potwierdza te zerowe ilości w realizacji, jak powyżej. Ciekawe jest to, że ponowne zrealizowanie tego samego ZK, się udaje, chociaż, akurat to konkretne z dzisiaj, dwa razy nie przeszło.

realizacjepozycji_457768.thumb.JPG.18dcfed43b219508e6b3726c847403a0.JPG

Się zastanawiam, czy tutaj nie ma jakiegoś powiązania z innym tematem, który się ostatnio nam nasilił i pojawiał kilka razy w tygodniu, z tego posta - końcowe wpisy, bo wątek był zaczęty kiedyś, dla innego problemu:

 

Link to postu

"Normalną" kopię mam z 20 lutego, a tam nie mam jeszcze tego zamówienia. Mam kopię z nocy przed, ale to jest zautomatyzowane przez firmę która wdrażała nam NEXO i nie mam pojęcia jak ten plik BAK wczytać, więc potrzebuję chwilę czasu, aby to rozgryźć. Generalnie to ZK ma statu Rezerwacja Stanu, ale po wystawieniu WZ.

Link to postu

Prawdopodobnie przyczyną braku realizacji ZK jest pewna luka w sferze. Będziemy ten problem badać i wprowadzimy odpowiednie zabezpieczenia. Jednak będzie to już po wersji wiosennej. Na dzień dzisiejszy można ten problem rozwiązać wprowadzając drobne modyfikacje w Pana kodzie.

 

IAplikatorSkutkowMagazynowych aplikatorSM = (IAplikatorSkutkowMagazynowych)wz;

...

poz.Ilosc = 0; // ustawiamy na 0, wyjdzie z rozbicia

aplikatorSM.AplikujSkutkiMagazynowe(poz);

...

r.ZakonczRozbicie();

aplikatorSM.AplikujSkutkiMagazynowe(poz);

 

20 godzin temu, Radomił Ząbik napisał:

Mam kopię z nocy przed, ale to jest zautomatyzowane przez firmę która wdrażała nam NEXO i nie mam pojęcia jak ten plik BAK wczytać, więc potrzebuję chwilę czasu, aby to rozgryźć.

Bazę danych na podstawie pliku BAK można odtworzyć korzystając z programu serwisowego nexo i opcji "Dearchiwizuj". Proszę jednak uważać, bo standardowo operacja ta wykonuje się na zaznaczonej bazie danych! Ostrzegam aby przez przypadek nie zepsuł Pan sobie bazy produkcyjnej. Aby utworzyć nową bazę należy w oknie "Przywracanie kopii zapasowej z pliku" wpisać inną nazwę podmiotu.

Jeżeli pokusi się Pan o stworzenie takiej bazy testowej na podstawie archiwum (pliku *.bak), to będzie Pan mógł przetestować swoje zmodyfikowane rozwiązanie. Jeżeli przeprowadzi Pan takie testy, to prosimy o informację zwrotną czy to rozwiązało problem?

 

Jeżeli chodzi o dokumenty ZK, których dotyczy ten problem, to można je naprawić z poziomu programu poprzez edycję, zmianę ilości na pozycji na jakąś inną i przywrócenie poprzedniej ilości. Niestety trzeba tą operację wykonać dla każdej pozycji.

 

 

Link to postu
19 godzin temu, Paweł Kubacki napisał:

Jeżeli chodzi o dokumenty ZK, których dotyczy ten problem, to można je naprawić z poziomu programu poprzez edycję, zmianę ilości na pozycji na jakąś inną i przywrócenie poprzedniej ilości. Niestety trzeba tą operację wykonać dla każdej pozycji.

Ten trik nie zadziałał - daje komunikat, że nie można wycofać, dla obecnego typu rezerwacji. Musiałem zmienić status na Bez rezerwacji, potem pogmerać w ilościach i się udało.

Link to postu
×
×
  • Dodaj nową pozycję...