Radomił Ząbik 308 Napisano 19 Kwietnia 2021 Udostępnij Napisano 19 Kwietnia 2021 w Zapis nie powiódł się, dla zmiany ilości na PZ Mamy PZ na usługę, wystawiony na podstawie ZD. Z jakiś przyczyn magazynier wpisał za dużą ilość o jeden na jednej pozycji, która tam jest i chcieliśmy to poprawić, ale otrzymujemy komunikat nic w sumie nie mówiący: "Zapis nie powiódł się". Chcemy zmienić ilość z 31, na 30 (tyle też było na ZD). Po przywróceniu ilości na 31, dokument zapisuje się bez błędu. Gdzie szukać przyczyny? (oczywiście wiem, że możemy go skorygować). Dodam, że dokument jest tworzony Sferycznie, na podstawie ZD. Link to postu
Przemysław Werner 393 Napisano 19 Kwietnia 2021 Udostępnij Napisano 19 Kwietnia 2021 w Zapis nie powiódł się, dla zmiany ilości na PZ Na jakiej wersji występuje problem? Link to postu
Radomił Ząbik 308 Napisano 19 Kwietnia 2021 Autor Udostępnij Napisano 19 Kwietnia 2021 w Zapis nie powiódł się, dla zmiany ilości na PZ Wersja 34.2.1, z wersją 35.0.1, się jeszcze wstrzymujemy, mimo iż łatka wyszła dzień po 35.0.0 Link to postu
Przemysław Werner 393 Napisano 19 Kwietnia 2021 Udostępnij Napisano 19 Kwietnia 2021 w Zapis nie powiódł się, dla zmiany ilości na PZ Czy Pańskie rozwiązanie tworzy specyfikacje na pozycjach usług? Link to postu
Radomił Ząbik 308 Napisano 19 Kwietnia 2021 Autor Udostępnij Napisano 19 Kwietnia 2021 w Zapis nie powiódł się, dla zmiany ilości na PZ Hmm, jeśli rozumiemy przez to specyfikację partii, to wygląda na to, że tak - w sumie rozwiązanie jest głównie do asortymentów, a że działało bez problemu na usługach, to może coś z tego wynikać. Poniżej kod: Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - dodawanie PZki do wybranych pozycji ZD."); // przygotowanie danych IAsortymenty asortyment = sfera.PodajObiektTypu<IAsortymenty>(); IJednostkiMiar jednostkiMiary = sfera.PodajObiektTypu<IJednostkiMiar>(); IPodmioty podmioty = sfera.PodajObiektTypu<IPodmioty>(); IUzytkownicy uzytkownicy = sfera.PodajObiektTypu<IUzytkownicy>(); IStatusyDokumentowDaneDomyslne statusyDD = sfera.PodajObiektTypu<IStatusyDokumentow>().DaneDomyslne; Konfiguracja konfPz = sfera.PodajObiektTypu<IKonfiguracje>().DaneDomyslne.PrzyjecieZewnetrzne; string stock; stock = results.stock; Magazyn mag = sfera.PodajObiektTypu<IMagazyny>().Dane.Wszystkie().Where(m => m.Symbol == stock).FirstOrDefault(); IPrzyjeciaZewnetrzne dokumentPrzyjecia = sfera.PodajObiektTypu<IPrzyjeciaZewnetrzne>(); IZamowieniaDoDostawcow zamowienia = sfera.PodajObiektTypu<IZamowieniaDoDostawcow>(); using (IPrzyjecieZewnetrzne pz = dokumentPrzyjecia.Utworz(konfPz)) { // ustawienie podstawowych paramatreów dokumentu ParametryGrupowaniaPodstawowe parametryGrupowania = new ParametryGrupowaniaPodstawowe(); parametryGrupowania.MetodaGrupowaniaPozycji = MetodaGrupowaniaPozycji.BezKonsolidacji; parametryGrupowania.MetodaWyliczeniaCen = MetodaWyliczeniaCen.PrzepisanieZDokumentuGlownego; pz.Dane.Magazyn = mag; pz.Dane.Uwagi = results.comment; pz.Dane.NumerZewnetrzny = results.number; // data dokumentu oryginalnego if(results.dateoriginal!=null) { string dateString = results.dateoriginal+" 12:00:00,000"; DateTime pzOrginalDate = DateTime.ParseExact(dateString,"yyyy-MM-dd HH:mm:ss,fff",System.Globalization.CultureInfo.InvariantCulture); pz.Dane.DataWydaniaWystawienia = pzOrginalDate; } // przetwarzanie pozycji IDokumentZRozbiciem dok = (IDokumentZRozbiciem)pz; var positions = new List<zdPos>(); foreach(var posadd in results.pos) { Console.WriteLine("Przygotowanie pozycji do pobrania: "+posadd.id); positions.Add(new zdPos(){ id=posadd.id, docid=posadd.docid, quantity=posadd.quantity }); } // wybranie zamówienia var docid = positions.First().docid; var zamowienie = zamowienia.Dane.Wszystkie().Where(p => p.Id == docid).FirstOrDefault(); // znalezienie pozycji zamówień var idy = positions.Select(p => p.id).ToArray(); var pozycjeZrodlowe = zamowienia.Dane.Wszystkie().SelectMany(zd => zd.Pozycje).Where(p => idy.Contains(p.Id)).ToList(); var pozycjeNowe = pz.WypelnijNaPodstawieZD(pozycjeZrodlowe, zamowienie, parametryGrupowania); // ponowne odczytanie pozycji i uzupełnienie partii foreach(var posadd in results.pos) { int posdocid; int posid; decimal posq; posdocid = posadd.docid; posid = posadd.id; posq = posadd.quantity; //znalezienie pozycji Console.WriteLine("Szukanie pozycji do modyfikacji: "+posid); var poz = pozycjeNowe.Where(p => p.PozycjeRealizowane.Select(pre => pre.PozycjaRealizowanaId).Contains(posid)).Single(); // obsługa partii var r = dok.RozpocznijRozbicie(poz) as IRozbiciePozycjiPrzyjeciowe; IPozycjaRozbiciaPrzyjeciowa pr = r.Pozycje.FirstOrDefault(); //.First(); if(pr == null) { pr = r.DodajPozycje(); Console.WriteLine("Tworzę pozycję, bo pusta!"); } int batches = 1; foreach(var posbatch in posadd.batch) { decimal batchquantity; string batchcode; string batchhash; batchquantity = posbatch.quantity; batchcode = posbatch.code; batchhash = posbatch.hash; Console.WriteLine("Dopisane partii: "+batchcode); if(batches>1) pr = r.DodajPozycje(); pr.KodDostawy = batchcode; pr.Ilosc = batchquantity; pr.OpisDostawy = batchhash; batches++; } r.ZakonczRozbicie(); pz.Przelicz(); } // osoba wystawiająca string sign = results.sign; pz.Dane.OdebralaOsoba = uzytkownicy.Dane.Wszystkie().Where(p => p.Sygnatura == sign).FirstOrDefault().Osoba; // zapisanie PZ if(pz.Zapisz()) { Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - dodano PZkę: "+pz.Dane.NumerWewnetrzny.PelnaSygnatura); response = "{ \"number\":\""+pz.Dane.NumerWewnetrzny.PelnaSygnatura+"\", \"id\":\""+pz.Dane.Id+"\" }"; } else { Globals.errors = ""; pz.WypiszBledy(); Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - błąd przy dodawaniu PZ: "+Globals.errors); response = "{ \"error\":\""+Globals.errors+"\" }"; } } Link to postu
Przemysław Werner 393 Napisano 20 Kwietnia 2021 Udostępnij Napisano 20 Kwietnia 2021 w Zapis nie powiódł się, dla zmiany ilości na PZ Wychodzi na to, że problemem są właśnie specyfikacje partii na pozycjach usług i nie da się zmienić ilości na pozycjach usług, na których zrobiono rozbicie W wersji letniej InsERT nexo poprawimy tę kwestię, ale na teraz pozostaje przestać je tworzyć w swoim rozwiązaniu. Link to postu
Radomił Ząbik 308 Napisano 20 Kwietnia 2021 Autor Udostępnij Napisano 20 Kwietnia 2021 w Zapis nie powiódł się, dla zmiany ilości na PZ 2 minuty temu, Przemysław Werner napisał: Wychodzi na to, że problemem są właśnie specyfikacje partii na pozycjach usług i nie da się zmienić ilości na pozycjach usług, na których zrobiono rozbicie W sensie poprawicie i moje rozwiązanie wywali błędem, czy poprawicie i mimo próby zapisu rozbicia, wejdzie prawidłowo do dokumentu. 3 minuty temu, Przemysław Werner napisał: W wersji letniej InsERT nexo poprawimy tę kwestię, ale na teraz pozostaje przestać je tworzyć w swoim rozwiązaniu. Albo poprawie Swoję rozwiązanie własne, że jak asortyment jest usługą, to nie rozbijać Link to postu
Przemysław Werner 393 Napisano 20 Kwietnia 2021 Udostępnij Napisano 20 Kwietnia 2021 w Zapis nie powiódł się, dla zmiany ilości na PZ 1 godzinę temu, Radomił Ząbik napisał: W sensie poprawicie i moje rozwiązanie wywali błędem, czy poprawicie i mimo próby zapisu rozbicia, wejdzie prawidłowo do dokumentu. 1 godzinę temu, Przemysław Werner napisał: Poprawka nie spowoduje "wywalania" Pańskiego rozwiązania. Będzie ona obejmowała tylko niewykonalność zmiany ilości na usłudze ze specyfikacją partii. 1 Link to postu
Polecane posty