Skocz do zawartości

Faktura zaliczkowa końcowa

Polecane posty

Jak uzyskać fakturę zaliczkową końcową w API. Faktura cząstowa wydaje się być oki, natomiast nie wiem jak uzyskać końcową i dodatkowo po najechaniu na znaczek FL (faktury zaliczkowej) ta niby końcowa ma dymek "Wydanie zewtnętrzne" (Ekran 1) i status "L" natomiast faktura końcowa wystawiona z NEXO ma prawidłowy status "W" a na dymku jest prawidłowo "Faktura sprzedaży zaliczkowa" (Ekran 2).

 

image.thumb.png.fb3c1cb2547055e0ee281a2e22d80533.png

image.thumb.png.438d60c2641add86c830d739b46b0c21.png

 

To co robie w kodzie to w zasadzie tylko konfigurację i dodaje dokument w oby przypadkach metoda dok.Dane.Zaliczkowy(); zwraca true, natomiast metoda dok.Dane.ZaliczkowyKoncowy(); zwraca false, nie mam pomysło co zrocić/ustawić zeby metoda dok.Dane.ZaliczkowyKoncowy(); w przypadku koncowej zwrocila true.

W GT jest łatwiej bo są osobne dwa dokumnety na zaliczkową i koncową.

 

 _konf = ((Uchwyt)Conn).PodajObiektTypu<IKonfiguracje>().DaneDomyslne.FakturaVATZaliczkowa;

using (var dok = doki.Utworz(_konf))
{

  ParametryGrupowaniaDS parametryGrupowania = new ParametryGrupowaniaDS();
                                        parametryGrupowania.MetodaGrupowaniaPozycji = MetodaGrupowaniaPozycji.BezKonsolidacji;
                                        parametryGrupowania.MetodaWyliczeniaCen = MetodaWyliczeniaCen.BezKonsolidacji;
                                        if (mDok.MiejsceDostawyTyp == (byte)MiejsceDostawyTyp.Reczny)
                                        {
                                            parametryGrupowania.MiejsceDostawy = mDok.MiejsceDostawy;
                                            parametryGrupowania.MiejsceDostawyTyp = MiejsceDostawyTyp.Reczny;
                                        }
                                        else if(mDok.MiejsceDostawyTyp == (byte) MiejsceDostawyTyp.Zamawiajacy )
                                        {
                                            parametryGrupowania.MiejsceDostawy = mDok.MiejsceDostawyZewnetrzne;
                                            parametryGrupowania.MiejsceDostawyTyp = MiejsceDostawyTyp.Zamawiajacy;
                                        }
                                        else
                                        {
                                            zwrot = new Message { Result = false, Id = 0, Msg = "Nie obsłużono miejsca dostawy. Typ: " + mDok.MiejsceDostawyTyp, StackTrace = string.Empty };
                                        }
                                        parametryGrupowania.NabywcaSprzedawca = mDok.NabywcaSprzedawcaWybrany;
                                        parametryGrupowania.OdbiorcaDostawca = mDok.OdbiorcaWybrany;
                                        parametryGrupowania.PrzeniesNatychmiastowe = PrzenoszeniePlatnosciNatychmiastowych.Przepisz;
                                        parametryGrupowania.PrzeniesPrzedplaty = PrzenoszeniePrzedplat.Przepisz;
                                        parametryGrupowania.OperacjePrzeliczaniaDokumentu = mDok.OperacjePrzeliczaniaDokumentu;
  
//w przypadku cząstkowej  dodaje dokument na podstawie zamówienia
mDok = dokiZam.Dane.Wszystkie().Where(p => p.Id == doc.OrderID).FirstOrDefault();
dok.WypelnijNaPodstawieZK(mDok.Pozycje, mDok, parametryGrupowania);
// w przypadku koncowej dodaje dokuemnt na podstawie pierwszej faktury cząstkowej
mPar = dokiParam.Dane.Wszystkie().Where(p => p.Id == realizujacy).FirstOrDefault();
dok.WypelnijNaPodstawieDS(mPar.Pozycje, mPar, parametryGrupowania);
  
}

 

 

Edytowane przez Dariusz Żukowski
Link to postu
  • 1 miesiąc temu...

Czy to ma się zdarzyć po utworzeniu dokumentu na podstawie zamówienia a następnie zapisie czy zamiast tego ? Jak w kodzie poniżej ?

 

using (var dok = doki.Utworz(_konf))
{

  ParametryGrupowaniaDS parametryGrupowania = new ParametryGrupowaniaDS();
                                        parametryGrupowania.MetodaGrupowaniaPozycji = MetodaGrupowaniaPozycji.BezKonsolidacji;
                                        parametryGrupowania.MetodaWyliczeniaCen = MetodaWyliczeniaCen.BezKonsolidacji;
                                        if (mDok.MiejsceDostawyTyp == (byte)MiejsceDostawyTyp.Reczny)
                                        {
                                            parametryGrupowania.MiejsceDostawy = mDok.MiejsceDostawy;
                                            parametryGrupowania.MiejsceDostawyTyp = MiejsceDostawyTyp.Reczny;
                                        }
                                        else if(mDok.MiejsceDostawyTyp == (byte) MiejsceDostawyTyp.Zamawiajacy )
                                        {
                                            parametryGrupowania.MiejsceDostawy = mDok.MiejsceDostawyZewnetrzne;
                                            parametryGrupowania.MiejsceDostawyTyp = MiejsceDostawyTyp.Zamawiajacy;
                                        }
                                        else
                                        {
                                            zwrot = new Message { Result = false, Id = 0, Msg = "Nie obsłużono miejsca dostawy. Typ: " + mDok.MiejsceDostawyTyp, StackTrace = string.Empty };
                                        }
                                        parametryGrupowania.NabywcaSprzedawca = mDok.NabywcaSprzedawcaWybrany;
                                        parametryGrupowania.OdbiorcaDostawca = mDok.OdbiorcaWybrany;
                                        parametryGrupowania.PrzeniesNatychmiastowe = PrzenoszeniePlatnosciNatychmiastowych.Przepisz;
                                        parametryGrupowania.PrzeniesPrzedplaty = PrzenoszeniePrzedplat.Przepisz;
                                        parametryGrupowania.OperacjePrzeliczaniaDokumentu = mDok.OperacjePrzeliczaniaDokumentu;
  

//w przypadku cząstkowej  dodaje dokument na podstawie zamówienia
mDok = dokiZam.Dane.Wszystkie().Where(p => p.Id == doc.OrderID).FirstOrDefault();
dok.WypelnijNaPodstawieZK(mDok.Pozycje, mDok, parametryGrupowania);

(dok as IDokumentZaliczkowy).ZamknijNaPodstawieZaliczkowej(mPar);
}

 

 

 

Link to postu

Wszystko działa, tylko na fakturze zaliczkowej trzeba dodać jeszcze aspektzaliczkowy na pozycjach i aspektzaliczkowy na dokumnecie, przepisać płatność z zamówienia

 decimal zaliczka = 0;
foreach (PozycjaDokumentu poz in dok.Dane.Pozycje)
{                                               
poz.AspektZaliczkiPozycji.Zaliczka.Brutto = poz.Wartosc.BruttoPoRabacie;
zaliczka += poz.Wartosc.BruttoPoRabacie;                                                
}

dok.Dane.AspektZaliczki.Zaliczka = zaliczka;
PaymentFromOrder(mDok, dok, doc);

 

i wtedy po zapisie dokumentu zaliczkowegokońcowego który tworzymy na postawie zamówienia należy dodać linie i wszystko działa prawidłowo

(dok as IDokumentZaliczkowy).ZamknijNaPodstawieZaliczkowej(mPar);
dok.Zapisz();

 

 

 

 

 

 

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