Strona 1 z 1

Zmiana ceny przy pomocy obiektów COM

: 24 lip 2018, 14:03
autor: rabies
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

Re: Zmiana ceny przy pomocy obiektów COM

: 24 lip 2018, 20:37
autor: taszek
a skąd chcesz pobierać nową cenę?

Re: Zmiana ceny przy pomocy obiektów COM

: 25 lip 2018, 08:28
autor: rabies
Będę ją wyliczał na podstawie atrybutów i parametrów wejściowych.

--
Pozdrawiam.

Re: Zmiana ceny przy pomocy obiektów COM

: 25 lip 2018, 09:30
autor: taszek
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)
	\}

Re: Zmiana ceny przy pomocy obiektów COM

: 27 lip 2018, 12:13
autor: rabies
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

Re: Zmiana ceny przy pomocy obiektów COM

: 30 lip 2018, 08:18
autor: taszek
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.

Re: Zmiana ceny przy pomocy obiektów COM

: 15 lis 2019, 09:24
autor: Adwin
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ąć?

Re: Zmiana ceny przy pomocy obiektów COM

: 24 lis 2019, 23:18
autor: Gabik
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
\}