Skocz do zawartości

[sfera] Faktura VAT na podstawie ZK - jak przenieść płatności?

Polecane posty

Witam serdecznie,

chciałbym zrealizować za pomocą sfery nexo następujące zadanie: wystawienie faktury lub paragonu na podstawie istniejącego ZK.
Wszystko idzie dobrze z wyjątkiem płatności. Niezależnie od tego, czy ustawię parametry grupowania PrzeniesNatychmiastowe i PrzeniesPrzedplaty na Przepisz czy też nie, płatności nie są przenoszone na fakturę.

Poniżej załączam fragment kodu który odpowiada za dodanie FV. Jeśli dodam na FV płatność ręcznie - wszystko przejdzie prawidłowo.

Co robię nie tak? Będę wdzięczny za wszelkie sugestie.

Pozdrawiam!


var zk = zamowienia.Dane.Wszystkie().Where(dok => dok.Id == sourceDocId).FirstOrDefault();

            using (IDokumentSprzedazy ds = dokumenty.Utworz(konfDs))
            {
                ParametryGrupowaniaDS parametryGrupowania = new ParametryGrupowaniaDS();
                parametryGrupowania.MetodaGrupowaniaPozycji = MetodaGrupowaniaPozycji.BezKonsolidacji;
                parametryGrupowania.MetodaWyliczeniaCen = MetodaWyliczeniaCen.BezKonsolidacji;
                parametryGrupowania.MiejsceDostawy = zk.MiejsceDostawy;
                parametryGrupowania.MiejsceDostawyTyp = MiejsceDostawyTyp.Nabywca;
                parametryGrupowania.NabywcaSprzedawca = zk.NabywcaSprzedawcaWybrany;
                parametryGrupowania.OdbiorcaDostawca = zk.OdbiorcaWybrany;
                parametryGrupowania.PrzeniesNatychmiastowe = PrzenoszeniePlatnosciNatychmiastowych.Przepisz;
                parametryGrupowania.PrzeniesPrzedplaty = PrzenoszeniePrzedplat.Przepisz;
                parametryGrupowania.OperacjePrzeliczaniaDokumentu = zk.OperacjePrzeliczaniaDokumentu;

                ds.WypelnijNaPodstawieZK(zk.Pozycje, zk, parametryGrupowania);

                foreach (var platnosc in ds.Dane.PlatnosciDokumentow)
                    Console.WriteLine("Płatność: " + platnosc.FormaPlatnosci.Nazwa + "-" + platnosc.KwotaPlatnosci);

                ds.Przelicz();
                Console.WriteLine("Wartość dok.: " + ds.Dane.Wartosc.BruttoPoRabacie);
				ds.Dane.WystawilaOsoba = zk.WystawilaOsoba;

                if (!ds.Zapisz())
                {
                    Console.WriteLine("błąd");
                    Console.WriteLine(ds.WypiszBledy());
                }
                else
                {
                    Console.WriteLine("ok!");
                }
            }

 

Link to postu

W sytuacji, gdy w systemie jest wyłączona obsługa płatności na ZK (konfiguracja -> typy dokumentów, druga zakładka), to rzeczywiście przy realizacji ZK za pomocą sfery płatności nie są przenoszone. W takim przypadku trzeba je samemu przepisać w sferze. Parametr, o którym mowa, decyduje o tym, czy dokument tworzy odpowiednie zapisy w ewidencji dokumentów kasowych i rozrachunków. Przykładowo ZK z płatnością gotówkową, gdy w systemie jest włączona obsługa płatności dla tego typu dokumentu, utworzy automatycznie dokument kasowy odpowiadający tej płatności gotówkowej.

  • Dziękuję 1
Link to postu

Dziękuję, faktycznie opcja ta była wyłączona.

Mam trochę inne pytanie: w jaki sposób przepisać płatność odroczoną, konkretnie chodzi o raty kupieckie - standardowe przepisanie płatności z ZK powoduje, że za każdym razem pojawia się na fakturze domyśla liczba rat (4), niezależnie od ustawień które były na ZK.

Przykład: na ZK ustawiam 2 raty po 100zł, po przepisaniu ich na FV będą ustawione 4 raty po 50zł.

Płatność przepisuję w następujący sposób:

ds.Platnosci.DodajPlatnoscOdroczona(zkPlatnosc.FormaPlatnosci, kwota, true);

Wygląda na to, że takie przepisanie działa prawidłowo na inne metody płatności, ale przy ratach kupieckich tracona jest informacja o harmonogramie spłaty kredytu. Sam kredyt się tworzy i sumaryczna kwota jest prawidłowa, ale harmonogram spłaty jest zawsze ustawiany na domyślny.

Pozdrawiam!

Link to postu
  • 3 tygodnie później...

Powracam jeszcze raz do tematu przepisywania płatności na dokumentach, z ZK na FS, PA, PI itd.

Dnia 15.05.2019 o 11:01, Paweł Kubacki napisał:

W sytuacji, gdy w systemie jest wyłączona obsługa płatności na ZK (konfiguracja -> typy dokumentów, druga zakładka), to rzeczywiście przy realizacji ZK za pomocą sfery płatności nie są przenoszone. W takim przypadku trzeba je samemu przepisać w sferze. (...)

Po zastosowaniu się do tej porady, faktycznie przepisywanie płatności zadziałało na moim nexo, problem w tym, że to chyba nie jest jedyne ustawienie, które jest wymagane aby funkcja działała. Zastosowałem powyższe na bazie produkcyjnej, tj. włączyłem metody płatności na ZK, a mimo to przepisywanie nie działa.

Dokładnie wygląda to tak, że ustawiając parametry grupowania płatności na 'Przepisz', płatności z ZK wogóle przestają być widoczne (zk.PlatnosciDokumentow jest puste, nic tam nie ma). Nie przenoszą się automatycznie i nie można ich też odczytać, aby przepisać je na dokument sprzedaży.

Natomiast jeśli parametry grupowania ustawię na brak przepisywania płatności, to wtedy płatności na ZK-ach są widoczne i mogę je wpisać na dokumenty sprzedażowe. Problem w tej sytuacji jest jednak to, że takie działanie generuje w nexo podwójne dokumenty KP - jeden dla zamówienia, drugi dla FS/PA/PI itd. Nie wiem jak mógłbym tego uniknąć bez użycia funkcji przepisania automatycznego.

Tak jak wspomniałem powyżej, na obu bazach - developerskiej i produkcyjnej - włączone są płatności na zamówieniach.

Edytowane przez Michał Fułat
doprecyzowanie braku płatności na ZK
Link to postu
4 godziny temu, Michał Fułat napisał:

Dokładnie wygląda to tak, że ustawiając parametry grupowania płatności na 'Przepisz', płatności z ZK wogóle przestają być widoczne (zk.PlatnosciDokumentow jest puste, nic tam nie ma). Nie przenoszą się automatycznie i nie można ich też odczytać, aby przepisać je na dokument sprzedaży. 

Takiego efektu nie udało mi się uzyskać. Proszę to jeszcze raz sprawdzić. Warto zwrócić uwagę czy na źródłowym ZK rzeczywiście są jakieś płatności. Jeżeli są i się nie przenoszą, to proszę sprawdzić czy przed wywołaniem metody WypelnijNaPodstawieZK kolekcja zk.PlatnosciDokumentow coś zawierała.
 

4 godziny temu, Michał Fułat napisał:

Natomiast jeśli parametry grupowania ustawię na brak przepisywania płatności, to wtedy płatności na ZK-ach są widoczne i mogę je wpisać na dokumenty sprzedażowe. Problem w tej sytuacji jest jednak to, że takie działanie generuje w nexo podwójne dokumenty KP - jeden dla zamówienia, drugi dla FS/PA/PI itd. Nie wiem jak mógłbym tego uniknąć bez użycia funkcji przepisania automatycznego.

Jeżeli ZK ma włączoną obsługę płatności, to przy "ręcznym" przepisywaniu płatności wszystkie płatności natychmiastowe z ZK powinny być przeniesione jako przedpłaty do nowego dokumentu. Gdy ZK ma wyłączoną obsługę płatności, to płatności natychmiastowe przenoszone są normalnie jako płatności natychmiastowe w nowym dokumencie.
 

4 godziny temu, Michał Fułat napisał:

Tak jak wspomniałem powyżej, na obu bazach - developerskiej i produkcyjnej - włączone są płatności na zamówieniach.

W tym przypadku nie powinno być potrzeby "ręcznego" przepisywania płatności. Dodam jeszcze, że informacja o tym, czy dokument ma powiązane dokumenty finansowe pamiętana jest w samym dokumencie. Może bowiem się zdarzyć tak, że wystawi Pan kilka dokumentów bez włączonej obsługi płatności, po czym parametr ten zostanie włączony. W takim przypadku dokumenty wcześniej wystawione nie będą posiadać powiązanych dokumentów finansowych. Oto przykład, jak to można obsłużyć w sferze

 

                        ParametryGrupowaniaDS parametryGrupowania = new ParametryGrupowaniaDS();
                        parametryGrupowania.MetodaGrupowaniaPozycji = MetodaGrupowaniaPozycji.BezKonsolidacji;
                        parametryGrupowania.MetodaWyliczeniaCen = MetodaWyliczeniaCen.BezKonsolidacji;
                        parametryGrupowania.MiejsceDostawy = zk.MiejsceDostawy;
                        parametryGrupowania.MiejsceDostawyTyp = MiejsceDostawyTyp.Nabywca;
                        parametryGrupowania.NabywcaSprzedawca = zk.NabywcaSprzedawcaWybrany;
                        parametryGrupowania.OdbiorcaDostawca = zk.OdbiorcaWybrany;
                        parametryGrupowania.PrzeniesNatychmiastowe = PrzenoszeniePlatnosciNatychmiastowych.Przepisz;
                        parametryGrupowania.PrzeniesPrzedplaty = PrzenoszeniePrzedplat.Przepisz;
                        parametryGrupowania.OperacjePrzeliczaniaDokumentu = zk.OperacjePrzeliczaniaDokumentu;

                        ds.WypelnijNaPodstawieZK(zk.Pozycje, zk, parametryGrupowania);
                        ds.Przelicz();

                        Console.WriteLine("Wartość dok.: " + ds.Dane.Wartosc.BruttoPoRabacie);

                        if (!zk.PosiadaAspektFinansowy.GetValueOrDefault(false))
                        {
                            foreach (var zkPlatnosc in zk.PlatnosciDokumentow.Where(x => x.RodzajPlatnosci == (byte)RodzajPlatnosci.Przedplata))
                            {
                                ds.Platnosci.DodajPrzedplate(zkPlatnosc.PozycjaHarmonogramuRozrachunku, zkPlatnosc.KwotaDokumentu);
                            }
                            foreach (var zkPlatnosc in zk.PlatnosciDokumentow.Where(x => x.RodzajPlatnosci == (byte)RodzajPlatnosci.Natychmiastowa))
                            {
                                ds.Platnosci.DodajPlatnoscNatychmiastowa(zkPlatnosc.FormaPlatnosci, zkPlatnosc.KwotaDokumentu);
                            }
                            foreach (var zkPlatnosc in zk.PlatnosciDokumentow.Where(x => x.RodzajPlatnosci == (byte)RodzajPlatnosci.Odroczona))
                            {
                                ds.Platnosci.DodajPlatnoscOdroczona(zkPlatnosc.KwotaDokumentu, zkPlatnosc.TerminDni.Value);
                            }
                        }

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