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

Blokada sprzedaży towaru do ilości całkowitej
https://forum.mix-soft.pl/viewtopic.php?f=2&t=1802
Strona 1 z 1

Autor:  comexe [ 2010-03-02, 14:39 ]
Tytuł:  Blokada sprzedaży towaru do ilości całkowitej

Witam, czy jest może w programie Symfonia Handel Premium możliwość zablokowania sprzedaży towarów lub konkretnego towaru tylko do ilości całkowitej (tzn żeby nie dało się sprzedać produktu w ilości np. 0,24)

Autor:  Misiek [ 2010-03-02, 15:02 ]
Tytuł: 

W standardzie nie znam takiej metody, czy to dla HM Premium czy też HM Forte.

Natomiast procedurami i językiem raportów tak i owszem - na forum było kilka przykładów z procedurami, można próbować we własnym zakresie, czekać na pomoc tutaj na forum, może jakaś dobra duszyczka coś napisze lub zamówić taką funkcjonalność u programisty.

Autor:  wrob [ 2010-03-02, 15:04 ]
Tytuł: 

Procedurką :-)

Autor:  rafal [ 2010-03-02, 15:57 ]
Tytuł: 

Na podstawie : http://forum.mojasymfonia.pl/viewtopic.php?p=4897

Kod:
int Sub OnBeforeInsert(long lId)

        OnBeforeInsert = 0
   
    baseBD bd
   baseBP bp

   int errBD, errBP      
   int iIlosc

    bd.GetRecById(lId)

   bp.SetKey("super")
   bp.SetKeySeg("super", bd.GetField("id"))
   bp.SetKeySeg("lp", 0)

   errBP = bp.GetRec( GE )

   while errBP == 0
      if bp.GetField("super") != bd.GetField("id") then exit

      // sprawdzamy warunek dla pozycji
         iIlosc = bp.GetField("ilosc")
      if bp.GetField("kod") == "Towar01" && (bp.GetField("ilosc") - iIlosc) > 0 then
         message "Ilośc dla towaru musi być całkowita"   
           OnBeforeInsert = -6000
      endif
   

   errBP = bp.GetRec( NX )
   wend
   
EndSub

Autor:  comexe [ 2010-03-03, 15:54 ]
Tytuł: 

Dzięki wielkie za podpowiedź, choć procedura mi nie działa pewnie dlatego że nie umiem jej zainicjować przed wypisywaniem fv. Ręczne uruchomienie nic nie zmienia i podczas wypisywania fv nadal mogę sprzedać 0,5 szt. produktu. Ale jeszcze nad tym posiedzę. W każdym razie jeszcze raz dzięki.

Autor:  wrob [ 2010-03-03, 16:00 ]
Tytuł: 

Na forum juz bylo i jak zainicjalizowac i ja wogole wlaczyc te procedury.... polecam opcje SZUKAJ

Autor:  comexe [ 2010-03-13, 13:34 ]
Tytuł: 

1. Zmieniłem Ustawienia -> Dane Firmy -> Parametry -> Wykonywanie Procedur -> Dla dokumentów sprzedaży na TAK
2. Dodałem procedurę przedstawioną przez "rafal" do procedury dokumentu sprzedaży która w tym momencie wygląda następująco
Kod:
//"procsp.sc","Procedury dokumentu sprzedaży",12015,0,1.0.0,SYSTEM
//" Procedury",2400,14,62


#define TYP_KATALOG      14
#define RODZ_GLOWNY      3300

BaseBD bazaBufora

#include "Procedury - include"


int Sub OnAddNewDokument(long lId)
   OnAddNewDokument = 0
EndSub

int Sub OnBeforeInsert(long lId)
    OnBeforeInsert = 0
   
    baseBD bd
    baseBP bp

    int errBD, errBP       
    int iIlosc

    bd.GetRecById(lId)

    bp.SetKey("super")
    bp.SetKeySeg("super", bd.GetField("id"))
    bp.SetKeySeg("lp", 0)

    errBP = bp.GetRec( GE )

    while errBP == 0
        if bp.GetField("super") != bd.GetField("id") then exit

        // sprawdzamy warunek dla pozycji
            iIlosc = bp.GetField("ilosc")
        if bp.GetField("kod") == "Towar01" && (bp.GetField("ilosc") - iIlosc) > 0 then
            message "Ilośc dla towaru musi być całkowita"   
            OnBeforeInsert = -6000
        endif   

    errBP = bp.GetRec( NX )
   wend
EndSub

int Sub OnAfterInsert(long lId)
   OnAfterInsert = SprawdzOkresNumeracji(lId, BAS_DK)
EndSub

int Sub OnKhChanged(long lId)
   OnKhChanged = 0
EndSub

int Sub OnBeforeDelete(long lId)
   OnBeforeDelete = 0
EndSub

int Sub OnAfterUpdate(long lId)
   OnAfterUpdate = SprawdzOkresNumeracji(lId, BAS_DK)
EndSub

int Sub OnTwChanged(long lId)
   OnTwChanged = 0
EndSub


Niestety jak wystawiam to nadal mogę sprzedać towar w ilości nie całkowitej.
Moja wersja to Symfonia Handel Premium 2007.a
Nie wiem gdzie mam szukać przyczyny, że procedura nie działa lub nie umiem jej zmusić do współpracy.

Autor:  wrob [ 2010-03-13, 14:23 ]
Tytuł: 

dodaj do niej jakis komunikat jelsi sie wyswietli przy wystawainiu to wiesz ze dziala czyli blad jest w niej, jelsi nie to wiesz ze sie nie uruchamia czyli wiesz gdzie szukac :)

Autor:  comexe [ 2010-03-15, 14:10 ]
Tytuł: 

Ok zrobiłem tak jak mi powiedziałeś wrob, procedura się uruchamia wiec przeanalizowałem dokładnie kod, zmodyfikowałem do własnych potrzeb i wszystko działa. Dzięki wielkie wszystkim co wtrącili swoje trzy grosze :)
klikam na ">> pomógł"

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