Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-11-12, 05:50x



Odpowiedz w temacie  [ Posty: 11 ] 
[HMF] Rezerwacja 
Autor Wiadomość

Rejestracja: 2009-01-13, 10:45
Posty: 86
Post [HMF] Rezerwacja
Niestety mam problem z tymi nieszczęsnymi Rezerwacjami w Forte.

Chodzi o modyfikację rezerwacji na dokumencie sprzedaży - zamiana (usunięcie i założenie nowej) rezerwacji ilościowej na rezerwację ze wskazaniem dostaw.

Udało mi się dokopać do obiektów BRezerwacja(przechowującego informacje o rezerwacjach) i BPwDostawRz odpowiedzialnego za wiązanie rezerwacji na danej pozycji dokumentu handlowego (sprzedaży) z konkretnymi rekordami dostaw (rekordy z bazy DW). Niestety nie mam pojęcia jak przy pomocy tego obiektu utworzyć nowe powiązania ze wskazanymi przeze mnie dostawami.

To co w Premium robiło się przy pomocy funkcji:
int RezerwacjaAutomatyczna(int baza, long Id, string() nazwyDostaw, float() ilosci )
w Forte jest - przynajmniej dla mnie - nieosiągalne.

Będę wdzięczny za pomoc w rozwiązaniu.


2009-10-12, 19:06
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2008-04-07, 13:26
Posty: 208
Pomógł: 2
Post 
Ta wiadomość była pomocna.(1)
Wywalamy dostawy z dokumentu
Kod:
   dispatch xRz
   dispatch xDok = xFactory.NewObject("BDokumentXX")
   
      for iDokPoz = 1 to iDokPoz > xDok.pozycje.Count

         xRz=xDok.pozycje.item(iDokPoz).wlasciwosci.rezerwacje

         for iRz = 1 to irz > xRz.Count   
            xRezerwacja.Load((using "id=%l",xRz.item(iRz).id))
            if xRezerwacja.Delete()   != 0 then
               message "Nie można usunąć rezerwacji."
            endif
         next iRz
         

      next iDokPoz



Robimy rezerwację ze wskazaniem dostaw
Kod:
dispatch xTw = xFactory.NewObject("BTw")
dispatch xRezerwacja = xFactory.NewObject("BRezerwacja")
xRezerwacja.Edit()
xRezerwacja.typ = 1 
xRezerwacja.typrzrw = 2 // ze wskazaniem dostaw
xRezerwacja.towar = xTw.Give("kod='kod_rezerwowanego towaru'")
xRezerwacja.kontrahent = xKh.Give("kod='kod_kontrahenta'")
xRezerwacja.ilosc = 1
// wskazanie dostawy
dispatch xDostawy = xRezerwacja.powiazania
long i = xDostawy.find("dostawa = 'towar_dostawa_01'")
xDostawy.item(1).ilosc = 1.0
xRezerwacja.Save()


2009-10-12, 20:55
Wyświetl profil

Rejestracja: 2009-01-13, 10:45
Posty: 86
Post 
Poniższy przykład generuje rezerwację na kontrahenta czyli odpowiednik RezerwacjiRęcznej z HMP.

barnie pisze:
Wywalamy dostawy z dokumentu
Robimy rezerwację ze wskazaniem dostaw
Kod:
dispatch xTw = xFactory.NewObject("BTw")
dispatch xRezerwacja = xFactory.NewObject("BRezerwacja")
xRezerwacja.Edit()
xRezerwacja.typ = 1 
xRezerwacja.typrzrw = 2 // ze wskazaniem dostaw
xRezerwacja.towar = xTw.Give("kod='kod_rezerwowanego towaru'")
xRezerwacja.kontrahent = xKh.Give("kod='kod_kontrahenta'")
xRezerwacja.ilosc = 1
// wskazanie dostawy
dispatch xDostawy = xRezerwacja.powiazania
long i = xDostawy.find("dostawa = 'towar_dostawa_01'")
xDostawy.item(1).ilosc = 1.0
xRezerwacja.Save()


Mnie interesuje jak tworzyć (zmienić) rezerwację ze wskazaniem dostaw do pozycji konkretnego dokumentu np. dokumentu sprzedaży - jest to RezerwacjaAutomatyczna z HMP.

Linia
Kod:
long i = xDostawy.find("dostawa = 'towar_dostawa_01'")

zwraca wartość "-1", próbowałem stosować zamiast "dostawa" pole "iddw" aby wskazywać konkretną interesującą mnie dostawę mimo wszystko funkcja Find zwraca "-1".

Próbowałem modyfikować zaproponowany przez Berniego kod ustawiając pola:
- bazadokrz
- iddokrz
- bazapozrz
- idpozrz
Ale niestety nic to nie daje - niby wszystko zapisuje się bez błędu (funkcja Save nie zwraca błędnej wratości) a mimo wszystko rezerwacja ze wskazaniem dostaw nie tworzy się na wybranej pozycji dokumentu.


2009-10-14, 11:41
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2008-04-07, 13:26
Posty: 208
Pomógł: 2
Post 
zmień w tym kodzie
Kod:
xRezerwacja.typrzrw = 1


2009-10-14, 15:06
Wyświetl profil

Rejestracja: 2009-01-13, 10:45
Posty: 86
Post 
Gdyby to było takie proste ;P

Z tego co wyczytałem w dokumentacji to 2 oznacza rezerwację ze wskazaniem dostaw.
Więc powinno być :
Kod:
xRezerwacja.typrzrw = 2


Zauważyłem ze rezerwacja sama w sobie zakłada się odpowiednia - problem jest z właściwością pozycji (pole typ w bazie ma wartość błędną) - niestety nie wiem jak zmienić ją z poziomu obiektów - oczywiście mógłbym ten parametr zmieniać przy pomocy bezpośredniego zapisu do bazy (jest to jednak mało "eleganckie" rozwiązanie).

Co ciekawe kod:
Kod:
if xRezerwacja.Delete()    != 0 then
   message "Nie można usunąć rezerwacji."
endif

zwraca wartość "-1" - pytanie czemu.

Problem jest tez z przypadkiem jeżeli na pozycji jest już założona rezerwacja ilościowa. W tym przypadku HMF a bazie RZ ma założone dodatkowe rekordy używane do rezerwacji ilościowej z którymi tworzone są powiązania z pozycji dokumentów. Jeżeli próbuję usunąć rezerwację i zakładam nową to nie wiem skąd się bierze ten rekord ilościowy.

Zapewne wszystkie problemy rozwiąże zmiana parametru typrzrw ale we właściwościach pozycji - niestety nie mam zielonego pojęcia jak to zrobić Save zwraca dziwne wartości.


2009-10-14, 21:18
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2008-04-07, 13:26
Posty: 208
Pomógł: 2
Post 
sqza pisze:
Gdyby to było takie proste ;P

Z tego co wyczytałem w dokumentacji to 2 oznacza rezerwację ze wskazaniem dostaw.
Więc powinno być :
Kod:
xRezerwacja.typrzrw = 2


jak zmienisz na 1 to utworzy Ci najpierw rezerwację ilościową co spowoduje, że xDostawy.find("dostawa = ''") nie będzie Ci zwracało -1


2009-10-15, 08:45
Wyświetl profil

Rejestracja: 2009-01-13, 10:45
Posty: 86
Post 
barnie pisze:
sqza pisze:
Gdyby to było takie proste ;P

Z tego co wyczytałem w dokumentacji to 2 oznacza rezerwację ze wskazaniem dostaw.
Więc powinno być :
Kod:
xRezerwacja.typrzrw = 2


jak zmienisz na 1 to utworzy Ci najpierw rezerwację ilościową co spowoduje, że xDostawy.find("dostawa = ''") nie będzie Ci zwracało -1


Obecnie xDostawy.find zwraca mi wartość "1" mimo istniejącej na pozycji rezerwacji ilościowej.
Wartość "-1" zwracana jest również podczas użycia funkcji Delete:
sqza pisze:
Co ciekawe kod:
Kod:
bernie pisze:
if xRezerwacja.Delete() != 0 then
message "Nie można usunąć rezerwacji."
endif

zwraca wartość "-1" - pytanie czemu.


Co ciekawe wszystko testowałem właśnie dla pozycji na których rezerwacja ilościowa była założona.


2009-10-15, 10:21
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post Re: [HMF] Rezerwacja
'Odświeżam' temat.
Przy próbie utworzenia rezerwacji mam błąd
"Wykonanie 'PropertyPut' nie powiodło się " w linii
Kod:
xRezerwacja.ilosc = fIlosc //1


HMF 2013

_________________
zz


2014-05-16, 11:37
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3994
Pomógł: 447
Post Re: [HMF] Rezerwacja
Pokaż więcej kodu do przetestowania.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2014-05-16, 12:13
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post Re: [HMF] Rezerwacja
Kod:
dispatch xRezerwacja = xFactory.NewObject("BRezerwacja")
dispatch xTw= xFactory.NewObject("BTw")
....
xRezerwacja.Edit()
xRezerwacja.typ = 1
xRezerwacja.typrzrw = 2
xRezerwacja.towar = xTw.Give("kod='KodTowaru'")
xRezerwacja.ilosc = fIlosc //tu błąd
xRezerwacja.Save()
...


No i nie wiem jak podłożyć zmienną pod 'KodTowaru'

_________________
zz


2014-05-16, 14:44
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3994
Pomógł: 447
Post Re: [HMF] Rezerwacja
Działający przykład dostępny u Eksperta.

Skontaktuj się z Ekspertem.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2014-05-16, 15:23
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 11 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Problem z rezerwacją

w Programy Handlowe

szejki

5

1063

2024-08-06, 08:30

szejki Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Rezerwacja towarów

w Programowanie

Simon123

2

3383

2016-08-23, 09:37

Simon123 Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. UtworzDokumentMagazynowy - rezerwacja

w Programowanie

zz

4

5143

2022-09-27, 13:28

Picasso Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Rezerwacja towaru

w Programy Handlowe

di3

6

5815

2011-08-30, 12:59

di3 Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 15 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant