mojaSymfonia FORUM
https://forum.mix-soft.pl/

Programistyczne tworzenie korekt do dokumentów sprzedaży
https://forum.mix-soft.pl/viewtopic.php?f=15&t=7930
Strona 1 z 1

Autor:  Mustrum [ 2017-05-29, 09:11 ]
Tytuł:  Programistyczne tworzenie korekt do dokumentów sprzedaży

Próbowałem na różne sposoby.

Robienie tego obiektami:
Kod:
dokumentKorygowany = xFactory.NewObject("BDokumentSp")
dokErr = dokumentKorygowany.Load("kod='kodDokumentu'")
dispatch korekta = dokumentKorygowany.UtworzKorekte()

nie działa (korekta pozostaje pustym obiektem).

IORec:
Kod:
IORec rec
rec.SetField("typDk", "FKS")
rec.SetField("seria", "sFKS")
//...
rec.SetField("idKorygowany","666")
rec.ImportSP()

również nie pozwala na tworzenie korekt (dokument, który powstaje w buforze nie jest korektą, tylko szkieletem dokumentu sprzedaży bez serii/typu).

Czy znacie jakiś sposób na utworzenie korekty dla dokumentu?

Autor:  rafal [ 2017-05-29, 11:52 ]
Tytuł:  Re: Programistyczne tworzenie korekt do dokumentów sprzedaży

Kod:
// deklaracja obiektu typu IoRec
IoRec ioX
// Ustawienie do jakiego dokumentu będzie wystawiona korekta
ioX.SetField("idDokKoryg", "65615")

//Wybów pozycji, która będzie korygowana
     ioX.BeginSection("Pozycja dokumentu")
// numer pozycji korygowanej
       ioX.SetField("lp","1")
// ilość o jaką korygujemy
       ioX.SetField("ilosc","-1")   
// lub wartość
       ioX.SetField("cena","-10")
     ioX.EndSection()

ImportSP(ioX)

Autor:  Mustrum [ 2017-05-30, 14:36 ]
Tytuł:  Re: Programistyczne tworzenie korekt do dokumentów sprzedaży

Dzięki, użycie IORec na podanej przez ciebie zasadzie działa.

Kolejnym problemem, który napotkałem jest edycja korekty (jak by co wszystko dotyczy HMF 2017b).
Korekty sprzedaży mogę bez problemu wczytać do BDokumentSp i następnie przejrzeć ich pozycje, jednak próba zmiany ilości powoduje w większości przypadków błąd "Wykonanie PropertyPut nie powiodło się".

Kod:
xPozycja.KorygujPozycje() //czy tak wprowadza się pozycję w tryb edycji?
xPozycja.iloscWp = -1.0 //błąd


Kod:
xPozycja.poKorekcie.KorygujPozycje() //crash Handlu...


Kod:
xPozycja.Edit() //taka metoda nie istnieje

Autor:  rafal [ 2017-05-30, 15:58 ]
Tytuł:  Re: Programistyczne tworzenie korekt do dokumentów sprzedaży

Edytuj też przez IoRec

Autor:  Mustrum [ 2017-05-31, 09:30 ]
Tytuł:  Re: Programistyczne tworzenie korekt do dokumentów sprzedaży

Czy nikogo nie denerwuje fakt, że jedyna rzecz do manipulacji dokumentami w Handlu, która jako tako działa, nie posiada niemal żadnej dokumentacji?

Edycja korekty za pomocą IORec działa prawidłowo dla pozycji, które były wcześniej korygowane (zauważyłem też, że ilość jest liczona dla edycji w odmienny sposób):
Kod:
IORec korekta
korekta.SetField("id", idKorekty)
korekta.BeginSection("Pozycja dokumentu")
   korekta.SetField("lp",numerLinii)
   korekta.SetField("ilosc", (using "%f", ilosc)) //gdzie ilosc to ilość sprzedanego towaru po korekcie
korekta.EndSection()
EditSP(korekta)

Jednak jeżeli dana pozycja nie była wcześniej korygowana (tj korekta zmieniała inne pozycje), powyższy kod nie robi nic.

Autor:  rafal [ 2017-05-31, 09:35 ]
Tytuł:  Re: Programistyczne tworzenie korekt do dokumentów sprzedaży

Jeżeli pozycja nie została nigdy skorygowana to nie znajduje się na korekcie czyli nie możesz edytować korekty tylko dokument źródłowy.
A dokument źródłowy nie powinien pozwolić się edytować bo ma korektę - czyli będzie pewnie błąd.
Pozostaje zmiana pozycji przez wystawienie kolejnej korekty.

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/