Łukasz Lica

Łukasz Lica Informatyk /
programista

Temat: Zmiana stawki VAT w towarach

Witam wszystkich serdecznie po długiej przerwie.

Borykam się ostatnio z pewnym problemem w HMF 2010.2a.
Po otwarciu okna towaru i zmianie stawki VAT, cena D (brutto) zostanie przeliczona od razu bez konieczności zapisywania zmian w towarze. Tak to działa z poziomu Handlu i dobrze działa, ja natomiast korzystam z obiektów biznesowych z poznimu VisualBasic'a i wykonuję tę samą operację jednak w tym przypadku mimo zmiany stawki VAT cena D (brutto) nie zostaje od razu przeliczona. Dodam tylko ,że nie mogę używać metody "PrzeliczCeny" z obiektu "BTowar" ponieważ cena A (netto) jest wpisywana z ręki i nie jest zgodna z wprowadzoną marżą.

Kod który używam wyglądą tak, proszę o jakąś pomoc w tej sprawie bo temat mam bardzo pilny.

tw -> to moja struktura w której wypełniam dane wejściowe


Set xTW = xFact.NewObject("BTowar")

nerr = xTW.Load("kod='" & tw.bKod & "'")
If nerr Then
Exit Function
Else
nerr = xTW.Edit()
If nerr Then
Exit Function
Else
Set xVat = xFact.NewObject("BStawkaVAT")

nerr = xVat.Load()
If nerr Then
Set xTW = Nothing
Set xVat = Nothing
Exit Function
Else
Select Case tw.bStVAT
Case "22%": j = 1
Case "7%": j = 2
Case "0%": j = 3
Case "zw.": j = 4
Case "3%": j = 5
Case "23%": j = 6
Case "NP": j = 7
Case "5%": j = 8
Case "6%": j = 9
End Select
Set xTW.stvat = xVat.Item(j)
End If
Set xVat = Nothing

nerr = xTW.Save()
If nerr Then
Set xTW = Nothing
Exit Function
End If

Set xTW = Nothing

Exit Function
End If
End If
Łukasz Lica edytował(a) ten post dnia 18.11.10 o godzinie 09:16
Aleksander Leszczyński

Aleksander Leszczyński Specjalista ds.
wdrożeń

Temat: Zmiana stawki VAT w towarach

W kartotece towarowej jeśli cena A nie jest przeliczana na podstawie bazowej i marży(lub narzutu) wystarczy "rozpiąć" powiązanie pomiędzy A a bazową(czyli odznaczasz ten "kwadracik" po lewej stronie w tabelce z cenami :) )Wówczas użycie w obiektach przeliczenia ceny nie powinno ci nic zrobić z cena A.
Łukasz Lica

Łukasz Lica Informatyk /
programista

Temat: Zmiana stawki VAT w towarach

Dzięki za szybką odpowiedź. Faktycznie to jest rozwiązanie. Mam jednak pytanie , jak nazywa się metoda w obiekcie "BTowar" którą mogę wspomniane "ptaszki" odptaszkować :) ?.

Pozdrawiam.
Marek Pacan

Marek Pacan
http://symfoniadodat
ki.pl

Temat: Zmiana stawki VAT w towarach

Witam,

w trybie edit np. dla ceny 'A' ustawiamy tę 'flagę' podając 0/1 do metody

xtw.cenaa.UstawPowiazanieCeny(1)

no i save.

Pozdrawiam
Łukasz Lica

Łukasz Lica Informatyk /
programista

Temat: Zmiana stawki VAT w towarach

bardzo dziękuję, niestety mimo ustawienia tej flagi na 0 w towarze poprzez Visual'a, w Symfoni nadal jest zaptaszkowane. Hmmmmm może coś jeszcze należy wykonać ??
Aleksander Leszczyński

Aleksander Leszczyński Specjalista ds.
wdrożeń

Temat: Zmiana stawki VAT w towarach

Oj chyba coś nie tak zrobiłeś :) Podaje krótki kod źródłowy - sprawdzony ;)

int nErr
dispatch xTw = xFactory.NewObject("BTowar")
nErr = xTw.Load("kod='Odkurzacz - Atlas 14'")
if nErr then error Using "\nBłąd nr %l\n", nErr
nErr = xTw.Edit()
xtw.cenaa.UstawPowiazanieCeny(0)
xtw.save()

Po jego wykonaniu w towarze cena A nie jest "optaszkowana"(połączona) z ceną bazową :) Jeśli kolejne ceny chcesz "odpiąć wówczas dajesz kolejno
xtw.cenab.UstawPowiazanieCeny(0)
xtw.cenac.UstawPowiazanieCeny(0)
xtw.cenad.UstawPowiazanieCeny(0)
Łukasz Lica

Łukasz Lica Informatyk /
programista

Temat: Zmiana stawki VAT w towarach

Ok proszę o to kod którego używam:


If tw.bAkcja = 1 Then
Set xTW = xFact.NewObject("BTowar")
nerr = xTW.Edit()
If nerr Then
BTowar = 1
Exit Function
Else
xTW.typ = tw.bTyp

xTW.przeliczCenSp = 1
xTW.zaokrCen = tw.bZaokraglenieCen

xTW.aktywny = tw.bAktywny
xTW.kod = tw.bKod
xTW.nazwa = tw.bNazwa
xTW.kodpaskowy = tw.bKodPaskowy
xTW.idfk = tw.bidFK
xTW.szablonDost = tw.bSzablon
xTW.jm = tw.bJm
xTW.znacznik = tw.bZnacznik
xTW.jmdod1 = tw.bJmDod1
' If tw.bPrzelJmDod1 >= 1 Then
' xTW.przeljmdod1 = tw.bPrzelJmDod1
' Else
' MsgBox "Przelicznik jednostki dodatkowej pierwszej zostanie ustawiony na 1"
' xTW.przeljmdod1 = 1
' End If
xTW.jmdod2 = tw.bJmDod2
' If tw.bPrzelJmDod2 >= 1 Then
' MsgBox "Przelicznik jednostki dodatkowej drugiej zostanie ustawiony na 1"
' xTW.przeljmdod2 = tw.bPrzelJmDod2
' Else
' xTW.przeljmdod2 = 1
' End If

xTW.NegocjacjaCen = tw.bNegocjacjaCen


'Cena A
nerr = xTW.cenaa.UstawTypParametru("2") '// narzut
nerr = xTW.cenaa.UstawParametr("10") '// narzut 10%
nerr = xTW.cenaa.ustawcene(tw.bCenaA)
nerr = xTW.cenaa.UstawWalute(tw.bWalutaA)
nerr = xTW.cenaa.UstawPowiazanieCeny(0)

'Cena B
nerr = xTW.cenab.UstawTypParametru("2") '// narzut
nerr = xTW.cenab.UstawParametr("10") '// narzut 10%
nerr = xTW.cenab.ustawcene(tw.bCenaB)
nerr = xTW.cenab.UstawWalute(tw.bWalutaB)
nerr = xTW.cenab.UstawPowiazanieCeny(0)
'Cena C
nerr = xTW.cenac.UstawTypParametru("2") '// narzut
nerr = xTW.cenac.UstawParametr("10") '// narzut 10%
nerr = xTW.cenac.ustawcene(tw.bCenaC)
nerr = xTW.cenac.UstawWalute(tw.bWalutaC)
nerr = xTW.cenac.UstawPowiazanieCeny(0)
'Cena D
nerr = xTW.cenad.UstawTypParametru("2") '// narzut
nerr = xTW.cenad.UstawParametr("10") '// narzut 10%
nerr = xTW.cenad.ustawcene(tw.bCenaD)
nerr = xTW.cenad.UstawPowiazanieCeny(0)

nerr = xTW.cenaBaz.ustawcene(tw.bCenaBaz)
nerr = xTW.cenazak.ustawcene(tw.bCenaZak)
xTW.Notatka = tw.bNotatka

Set xVat = xFact.NewObject("BStawkaVAT")
nerr = xVat.Load()
If nerr Then
Set xTW = Nothing
Set xVat = Nothing
BTowar = 10
Exit Function
Else
Select Case tw.bStVAT
Case "22%": j = 1
Case "7%": j = 2
Case "6%": j = 8
Case "5%": j = 7
Case "3%": j = 5
Case "0%": j = 3
Case "zw.": j = 4
Case "NP": j = 6
End Select
Set xTW.stvat = xVat.Item(j)
End If
Set xVat = Nothing

nerr = xTW.UstawRodzaj("kod='" & tw.bRodzaj & "'")
If nerr Then
Set xTW = Nothing
BTowar = 2
Exit Function
End If
nerr = xTW.UstawKatalog("nazwa='\" & tw.bKatalog & "'")
If nerr Then
Set xTW = Nothing
BTowar = 3
Exit Function
End If
nerr = xTW.UstawPrzeliczanieCen("1")
If nerr Then
BTowar = 11
Exit Function
End If

nerr = xTW.Save()

If nerr Then
Set xTW = Nothing
BTowar = 4
Exit Function
End If
Set xTW = Nothing


BTowar = 0
Exit Function
End If
End If

Następna dyskusja:

Dodatkowa rubryka WZ na fak...




Wyślij zaproszenie do