Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, obiekty COM .NET
Moderator: mikey
rabies
Posty: 45 Rejestracja: 25 mar 2016, 13:08
Rola: Administrator CDN XL
Wersja: 2022
Post
autor: rabies » 24 lip 2018, 14:03
Witam,
potrzebuje zmienić cenę towaru przy użyciu funkcji dodatkowych [JS], przy próbie utworzenia obiektu:
Kod: Zaznacz cały
rCena = rSesja.CreateObject("CDN.TwrCeny").Item("TwC_TwrID = "+Recordset.Fields(0).value+" AND TwC_TwCNumer = "+??cenaDetaliczna);
dostaję komunikat jak w załączniku.
w jaki sposób poprzez obiekty COM mogę się dostać do konkretnej ceny towaru?
--
Pozdrawiam
Załączniki
twrCeny.PNG (6.79 KiB) Przejrzano 9797 razy
Pozdrawiam
Krzysiek
taszek
Posty: 588 Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016
Post
autor: taszek » 24 lip 2018, 20:37
a skąd chcesz pobierać nową cenę?
Pozdrawiam
Wojtek Cyrklewicz
rabies
Posty: 45 Rejestracja: 25 mar 2016, 13:08
Rola: Administrator CDN XL
Wersja: 2022
Post
autor: rabies » 25 lip 2018, 08:28
Będę ją wyliczał na podstawie atrybutów i parametrów wejściowych.
--
Pozdrawiam.
Pozdrawiam
Krzysiek
taszek
Posty: 588 Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016
Post
autor: taszek » 25 lip 2018, 09:30
Możesz np. tak to zrobić (ja podwyższam podaną marże dla zaznaczonych towarów dla wybranej ceny)
Kod: Zaznacz cały
[SQL]
@PAR ?@Hs200_NQ|Filtr:''@? PAR@
@PAR ?@R(select DfC_DfCId,Dfc_Nazwa from CDN.DefCeny where Dfc_Nieaktywna is null and Dfc_DfcID >1)|Cena|&Cena:hurtowa 1 @? @PAR
@PAR ?@N7|Marza|Podaj marżę w %:5 @? @RH(999999) PAR@
SELECT RPZ2_GIDNumer FROM CDN.RptZaznaczenia2
WHERE ??_NQFiltr
[JS]
var shell = new ActiveXObject ('WScript.Shell')
try\{
while ( !Recordset.EOF )
\{
var rTowar = Session.CreateObject("CDN.Towary").Item("Twr_TwrId = "+ Recordset.Fields("RpZ2_GIDNumer"))
var rCena = rTowar.Ceny.Item(??Cena-1).Wartosc
rCena = Math.round((rCena + rCena*??Marza/100)*100)/100
rTowar.Ceny.Item(??Cena-1).Wartosc = rCena
Session.Save()
Recordset.MoveNext()
\}
\}
catch(e)
\{
shell.Popup(e.description)
\}
Pozdrawiam
Wojtek Cyrklewicz
rabies
Posty: 45 Rejestracja: 25 mar 2016, 13:08
Rola: Administrator CDN XL
Wersja: 2022
Post
autor: rabies » 27 lip 2018, 12:13
Witam,
kod:
Kod: Zaznacz cały
rTowar.Ceny.Item(??cena-1).Wartosc = nowaCena;
działa, dzięki za podpowiedź jednak nie rozumiem dlaczego trzeba od id ceny odjąć 1, id Ceny w TwrCeny jak i DefCeny sie pokrywają a ID pobieram z DefCeny więc teoretycznie to -1 jest niepotrzebne a jednak musi być do poprawnego działania skryptu
--
Pozdrawiam
Pozdrawiam
Krzysiek
taszek
Posty: 588 Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016
Post
autor: taszek » 30 lip 2018, 08:18
Wiąże się to z tym, że tablica w obiekcie cen numerowana jest od 0. Więc cena zakupu jest w Optimie jako 1, ale w tablicy już jako 0.
Pozdrawiam
Wojtek Cyrklewicz
Adwin
Posty: 1 Rejestracja: 09 sty 2018, 15:00
Rola: Administrator CDN XL
Wersja: 2019
Post
autor: Adwin » 15 lis 2019, 09:24
Chciałbym powyższy skrypt zastosować na RO i ustalać cenę sprzedaży od marży...
ale wyskakuje mi nieprawidłowa nazwa kolumy TrN_TrNId :/
Da radę to jakoś ogarnąć?
Gabik
Posty: 26 Rejestracja: 05 sty 2019, 23:46
Rola: Inny
Wersja: 2018
Post
autor: Gabik » 24 lis 2019, 23:18
Do dokumentu RO będziesz potrzebował innego skryptu.
Musisz na obiekcie dokumentu dostać się do elementów i na nich ustawić odpowiednią cenę.
Kod: Zaznacz cały
var rPozycje = rRO.Elementy;
for (var i=0; i<rPozycje.Count ; i++ )
\{
rPozycje.Item(i).CenaT= nowaCena
\}